1

我在解析来自 Giantbomb 的数据时遇到了一些严重的问题。我已经尝试了我书中的几乎所有技巧来解析数据,但它要么让我 Access Origin Null not allowed,要么 Unexpected : 在 Javascript 控制台中。我已经尝试过这样做:

$.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)
});

似乎没有任何效果 - 根本没有。谷歌似乎也没有任何答案。有人知道该怎么做吗?...

我的目标是从游戏中获得封面艺术,所以如果那里有更好的图书馆 - 请告诉我!

4

1 回答 1

1

你正在做的两个问题:

  1. 如果您&format=jsonp输入 URL,当您使用$.getJSON. 任何$.getJSON调用都只会得到不允许调用的错误,因为Access-Control-Allow-Origin. 您需要使用$.ajax并将 dataType 设置为 JSONP。

  2. 您已经指定了一个名为 的 JSON 回调函数gamer。这是您应该使用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);
}
于 2012-10-13T19:39:48.970 回答