2014-01-26 108 views
2

1)我試圖使用由netrunnerdb.com提供的crossdomain api。該網站需要一個jsonp請求或拒絕請求。

如果您想了解更多有關api的信息,請訪問網站,網頁底部有一個關於api的鏈接。Jquery,JSONP錯誤200,解析錯誤,同時收到消息

2)這不是我的API,我打電話

- 我沒有對服務器的控制權,而我認爲問題是,JSON是不被認爲jQuery的將作爲函數內返回回調。

3)我的Ajax請求:

var path="http://netrunnerdb.com/api/search/r<t d:c" 
$.ajax({ 
    type:   "GET", 
    url:   path,   
    cache:   true, 
    dataType:  "jsonp", 
    error:   function(xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(ajaxOptions); 
     alert(thrownError); 
    }, 
}); 

這裏是由請求發送的網址:

http://netrunnerdb.com/api/search/r%3Ct%20d:c%20?callback=jQuery1110010968961869366467_1390750866847 

4)迴應:

我得到一個錯誤200拋出,我收到一個parseerror,然後通知json回調沒有被調用。答案只是畸形嗎?有沒有解決方法?在chrome中,如果我通過直接瀏覽上面的URL將整個響應複製到控制檯並設置一個等於它的變量,它就可以很好地解析爲一個數組。

回答

2

您得到的響應爲JSON而不是JSONP,因爲API無法識別jQuery的回調。 API期望jsonp參數中的回調名稱,而不是callback

此添加到您的Ajax調用的屬性,使jQuery的在URL中使用jsonp代替callback

jsonp: 'jsonp',