Javascript 显示jquery GET的JSON结果时出现问题
我不熟悉Javascript、JQuery和JSON,所以我可能会犯很多不同的错误,但我总是发现最好的学习方法就是直接参与进来 我正在做一个小宠物项目,主要是为了练习,使用网站elophant.com上提供的API。它是用来追踪流行的传奇联盟游戏的统计数据的。然而,我似乎无法让任何jquery正常工作。以下是我尝试访问的资源的API: 他们的示例请求是:“GETJavascript 显示jquery GET的JSON结果时出现问题,javascript,jquery,json,Javascript,Jquery,Json,我不熟悉Javascript、JQuery和JSON,所以我可能会犯很多不同的错误,但我总是发现最好的学习方法就是直接参与进来 我正在做一个小宠物项目,主要是为了练习,使用网站elophant.com上提供的API。它是用来追踪流行的传奇联盟游戏的统计数据的。然而,我似乎无法让任何jquery正常工作。以下是我尝试访问的资源的API: 他们的示例请求是:“GET”字段是您注册到站点后他们提供给您的密钥。它返回JSON格式的信息 以下是我目前正在尝试做的事情: <body> &
<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>
看起来,至少您的参数顺序是错误的。数据类型必须位于回调函数之后,如下所示:
$.get("http://elophant.com/api/v1/status?key=MY_KEY_HERE", {callback : "?" }, function(data) {
$('#summary').text(data.result);
}, "jsonp");
callback({key: "value", anotherKey: "another value"})
在那个些API文档中,我也并没有看到任何东西表明它支持在JSONP回调函数中包装JSON。你确定这有空吗
您可以通过验证您得到的响应是否是JSON包装在函数中来测试这一点。可能看起来像这样:
$.get("http://elophant.com/api/v1/status?key=MY_KEY_HERE", {callback : "?" }, function(data) {
$('#summary').text(data.result);
}, "jsonp");
callback({key: "value", anotherKey: "another value"})
还有一个$.getJSON函数也可以与jsonp一起使用。请检查控制台是否有错误(在浏览器中按F12)@Rorymcrossan我在控制台中没有看到错误。这是否意味着它成功了,但我只是没有正确地访问数据?不,我没有。我的印象是JSONP用于外部URL,JSON用于本地URL。@Joshua这是正确的,但问题是您调用的服务器必须在其API中支持JSONP,这样它才能将JSON包装到函数中。有没有办法“强制”JSONP?我得到一个没有jsonp类型的错误。API是为外部使用而设计的,所以我必须相信有一种方法可以做到这一点。@Joshua仅仅因为API是为外部使用而设计的,并不意味着它是为通过javascript/AJAX外部使用而设计的。老实说,大多数API都不提供这种支持,因为大多数API用于服务器到服务器的调用,而不是跨域浏览器客户端调用。您应该与API提供商联系,看看他们是否提供JSONP支持,或者您需要想出一些其他的方法来实现这一点,比如在您的服务器上有一个用AJAX调用的脚本,然后它以服务器到服务器的方式调用这个API(可能中间有某种缓存)。我将研究其他方法。我想我只是认为javascript是正确的路线。谢谢你的帮助!