0

我是 Javascript、JQuery 和 JSON 的新手,所以我可能会犯很多不同的错误,但我一直发现最好的学习方法就是直接进入。

我正在使用 elophant.com 网站上提供的 API 进行一个小型宠物项目,主要用于练习。它用于跟踪流行的英雄联盟游戏的统计数据。但是,我似乎无法让任何 jquery 正常工作。这是我尝试访问的资源的 API:http: //elophant.com/developers/docs/status

他们的示例请求是:“GET http://elophant.com/api/v1/status?key= <key>” <key> 字段是他们在您注册到站点后提供给您的密钥。它以 JSON 格式返回信息。

到目前为止,这是我正在尝试做的事情:

<body>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

    <script>
    $.get("http://elophant.com/api/v1/status?key=MY_KEY_HERE", {callback : "?" }, "jsonp",  function(data) {
    $('#summary').text(data.result);
    });
    </script>
</body>

编辑:我删除了 JSONP 并将其替换为纯 JSON,我收到此控制台错误:

XMLHttpRequest cannot load http://elophant.com/api/v1/status?key=MY_KEY_HERE&callback=%3F. Origin null is not allowed by Access-Control-Allow-Origin.
4

1 回答 1

1

至少,您的参数顺序似乎是错误的。dataType 必须在回调函数之后,如下所示:

$.get("http://elophant.com/api/v1/status?key=MY_KEY_HERE", {callback : "?" },  function(data) {
    $('#summary').text(data.result);
}, "jsonp");

我在该 API 文档中也没有看到任何表明它支持在 JSONP 回调函数中包装 JSON 的内容。你确定这是可用的吗?

您可以通过验证您获得的响应是​​ JSON 包装在一个函数中来测试这一点。这可能看起来像这样:

callback({key: "value", anotherKey: "another value"})
于 2012-11-30T17:08:40.020 回答