所以我想做出堆棧交易所API的請求與以下jQuery代碼:JSONP請求返回錯誤:「未捕獲的SyntaxError:意外的標記:」
$.ajax({
type: 'POST',
url: 'http://api.stackoverflow.com/1.1/stats',
dataType: 'jsonp',
success: function() { console.log('Success!'); },
error: function() { console.log('Uh Oh!'); }
});
但是當我打開文件我的機器,無論是在Firefox或Chrome,併發出請求,我得到這個錯誤:
Resource interpreted as Script but transferred with MIME type application/json.
Uncaught SyntaxError: Unexpected token :
Uh Oh!
我沒有一個線索是怎麼回事。我知道堆棧交換API Gzips其反應,這會造成麻煩嗎?
你從服務器得到什麼:從調用URL
結果?我得到了JSON - 而JSON不是JSON-P,它將數據封裝在一個回調函數中,該回調函數必須位於全局名稱空間中,以及您在請求中告訴服務器的內容(在代碼中看不到的其他內容)。關鍵是,只是不要告訴你的jQuery結果是JSONP,如果它真的是JSON。 – 2011-05-18 14:06:48
我使用JSONP是因爲它是在StackOverflow的其他地方提出的。當我使用JSON時,出現以下錯誤:XMLHttpRequest無法加載http://api.stackoverflow.com/1.1/stats。 Origin-null不被Access-Control-Allow-Origin所允許。「 – theabraham 2011-05-18 14:08:33
不知道他們的API,但是正如我所說的那樣,從那個URL清楚地返回的是JSON。使用「dataType」你只告訴你的jQuery *如何解釋結果,你不告訴* server *你想要JSONP。 – 2011-05-18 14:11:16