大家晚上好,
我正在尝试通过魔兽世界社区API检索JSON数据。我有一个正常运行的程序,可以从以下代码片段中的URL中检索所有数据,实际上它会提醒我的角色名称。
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Wreckedified Raiding</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
"url":"http://us.battle.net/api/wow/character/aerie-peak/Eldershield?jsonp=myCallback",
"type":"GET",
"dataType":"jsonp",
"contentType":"application/json",
"jsonpCallback":"myCallback",
"success":function(data){
console.log(data);
alert(data.name);
}
})
alert("Hello World!");
});
</script>
</head>
但是,我真正想要的数据是JSON格式,位于以下网址:
http://us.battle.net/api/wow/character/aerie-peak/Eldershield?fields=items
我的问题是:当我还需要附加?jsonp = myCallback时,如何在Ajax调用中格式化此URL?
我想要在该链接上找到“averageItemLevel”:562等信息,但不能使用该网址:
"url":"http://us.battle.net/api/wow/character/aerie-peak/Eldershield?fields=items?jsonp=myCallback"
我确信有一个简单的解决方案涉及URL中的?或者某些东西,但是我尝试了几种变体而且显然遗漏了一些东西。
感谢大家的时间,并提前感谢您的帮助。
答案 0 :(得分:2)
使用data
选项指定AJAX调用中的参数。 jQuery会将它们正确地添加到URL中。
$.ajax({
"url":"http://us.battle.net/api/wow/character/aerie-peak/Eldershield?jsonp=myCallback",
"type":"GET",
"data": { fields: "items" },
"dataType":"jsonp",
"contentType":"application/json",
"jsonpCallback":"myCallback",
"success":function(data){
console.log(data);
alert(data.name);
}
})
如果您想自己动手,网址应为:
http://us.battle.net/api/wow/character/aerie-peak/Eldershield?fields=items&jsonp=myCallback
?
用于分隔脚本名称中的参数,&
用于分隔每个参数。
答案 1 :(得分:1)
以正确的方式Read This格式化您的查询字符串并回答您的问题check this out。
简而言之,您可以使用?
开始添加参数,然后构建它们并继续使用&
进行添加。当我阅读网址时,我将 ?
读为 where
,将 &
读为 and
强>
<强> DOMAIN.come / pagename.ext ?
= PARA1 VAL1 &
= PARA2 VAL2 &
= para3各个VAL3 强>
但是由于您要使用JQuery执行AJAX请求,它允许您将所有参数添加到ajax对象,并使用data
参数为您构建它。
示例:
$.ajax({
"url":"http://exampleSite.com/request.php",
"type":"GET",
"data": {"para1":"val1","para2","val2", "para3","val3" },
"dataType":"jsonp",
"success":function(data){
console.log(data);
}
})
如果您检查开发人员工具,您会发现浏览器提出了此请求
http://exampleSite.com/request.php?para1=val1¶2=val2¶2=val2