JSON数据和Ajax调用的URL

时间:2014-01-23 03:34:49

标签: javascript ajax api jsonp

大家晚上好,

我正在尝试通过魔兽世界社区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中的?或者某些东西,但是我尝试了几种变体而且显然遗漏了一些东西。

感谢大家的时间,并提前感谢您的帮助。

2 个答案:

答案 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&para2=val2&para2=val2