2012-10-13 45 views
1

Iam在解析來自Giantbomb的數據時遇到了一些嚴重問題。我已經嘗試了我書中幾乎所有的技巧來解析數據,但它或者給我提供了Access Origin Null不允許或意外:在Javascript控制檯中。我都試過這樣做:Giantbomb API to JSON

$.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

兩個問題,你在做什麼:

  1. 如果你把&format=jsonp到URL,你還是賺不到,當你與$.getJSON發出它JSONP請求。由於Access-Control-Allow-Origin,任何$.getJSON來電都會產生錯誤,致使該來電不被允許。您需要使用$.ajax並將dataType設置爲JSONP。

  2. 您已指定一個名爲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); 
} 
+0

非常感謝!你保存了一天,我想我剛剛學到了一些新東西!萬分感謝! –