我想從一個網站(特別是Yummly)獲取一些API數據,它看起來像當我嘗試執行JSONP請求時收到JSON數據。這會導致「Uncaught SyntaxError:UnexpectedToken:」。如果jQuery認爲它收到JSONP請求,我該如何解釋JSON?
它試圖做到這一點的代碼是:
var keywords = $('#input-text').val();
var url = "http://www.yummly.com/api/recipesq="+keywords+"&_app_id=<snipped-app-id>&_app_key=<snipped-api-key>&";
$.ajax({
type: 'GET',
url: url,
dataType: 'jsonp',
//dataType: 'jsonp json'
success: function() { console.log('Success!'); },
error: function(data, data2) { console.log(data); },
//jsonp: false,
//jsonpCallback: 'recipeGet'
});
});
我試圖通過重載數據類型來轉換成JSON從JSONP,但是這並沒有導致任何不同的結果比上面。我也嘗試改變回調函數,但是當我收到語法錯誤時,它不會去函數。當我不使用JSONP並且只使用JSON時,我收到一個「XMLHttpRequest無法加載Origin,Access-Control-Allow-Origin不允許使用Origin。」。
任何幫助將不勝感激,我一直在努力與此相當。
您的gettng數據服務是否明確支持'JSONP'?如果他們不這樣做,那麼你不能使用'JSONP'。如果他們也不支持'CORS'頭部,那麼你就不能通過其他域上的AJAX使用這個數據源。答案是什麼樣的? –
JSON.parse(data) –
@RPM無法幫助,因爲原始響應文本在JSONP請求中不可用。 – Pointy