我在从Giantbomb解析数据时遇到了一些麻烦。我已经尝试了我书中的几乎所有技巧来解析数据,但是它或者在Javascript控制台中给出了Access Origin Null不允许或者意外:我试过这两个:
$.getJSON("http://api.giantbomb.com/search/?api_key=KEY&query=crash%20bandicoot&field_list=name,image&format=jsonp&json_callback=gamer", function(data) {
console.log(data)
});
没有JSONP的东西:
$.getJSON("http://api.giantbomb.com/search/?api_key=KEY&query=crash%20bandicoot&field_list=name,image&format=json", function(data) {
console.log(data)
});
似乎没有任何工作 - 根本没有。谷歌似乎也没有任何答案。有没有人知道该怎么做?..
我的目标是从游戏中获取封面艺术,所以如果有更好的图书馆 - 请告诉我!
答案 0 :(得分:1)
你正在做的两个问题:
如果您将&format=jsonp
放入网址,则在使用$.getJSON
发出JSON请求时,您仍然没有发出JSONP请求。任何$.getJSON
次调用都会因Access-Control-Allow-Origin
而导致错误而导致不允许来电。您需要使用$.ajax
并将dataType设置为JSONP。
您已指定名为gamer
的JSON回调函数。这是您应该使用console.log
转储数据并执行其他任何操作来解析结果。
以下内容应该有效:
$(document).ready(function(){
$.ajax({
url: "http://api.giantbomb.com/search/",
type: "get",
data: {api_key : "KEYHERE", query: "crash bandicoot", field_list : "name, image", format : "jsonp", json_callback : "gamer" },
dataType: "jsonp"
});
});
function gamer(data) {
console.log(data);
}