Giantbomb API到JSON

时间:2012-10-13 15:03:46

标签: jquery json api

我在从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)
});

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

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

1 个答案:

答案 0 :(得分:1)

你正在做的两个问题:

  1. 如果您将&format=jsonp放入网址,则在使用$.getJSON发出JSON请求时,您仍然没有发出JSONP请求。任何$.getJSON次调用都会因Access-Control-Allow-Origin而导致错误而导致不允许来电。您需要使用$.ajax并将dataType设置为JSONP。

  2. 您已指定名为gamer的JSON回调函数。这是您应该使用console.log转储数据并执行其他任何操作来解析结果。

  3. 以下内容应该有效:

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