0
我正在嘗試使用jQuery向其他服務器發送AJAX請求。我在本地經營。如果我使用HTML數據類型,我會得到經典的Origin http://127.0.0.1 is not allowed by Access-Control-Allow-Origin
。所以,我開始使用JSONP請求:使用AJAX從另一臺服務器接收數據
$.ajax({
url: 'SomeRemoteServer/SomeFile',
dataType: 'jsonp',
success: function(data) {
// do stuff
},
error: function(d,msg) {
alert(msg);
}
});
的擦肩而過誤差爲parsingerror
和Chrome JS調試器輸出Resource interpreted as Script but transferred with MIME type text/html
。仔細查看網絡上的這個錯誤後,我發現錯誤來自於服務器,而不是我的腳本(它應該發回MIME類型application/json
或類似的東西)。
好吧,似乎服務器正在發送一些東西......我想趕上響應和自我處理解析。這是可行的嗎?如果是的話如何?我試圖$.ajax()
選項converters
但沒有成功......
我的問題,如果服務器輸出的text/html那麼你肯定服務器想讓你送JSONP請求給它? – Ejaz 2013-05-01 16:12:14
根據我的經驗,「資源解釋爲腳本,但是以MIME類型text/html'傳輸」是*警告*,不是錯誤。如果你的代碼不能正常工作,肯定還有其他的錯誤。 (例如,來自服務器的JSONP響應是否爲有效腳本?)JSONP響應是*腳本*;它不是JSON(儘管它可能包含JSON),並且不應該使用'application/json'。 – apsillers 2013-05-01 16:14:10
@apsillers:顯然這是無效的。我想在插入我的代碼之前甚至檢查它的有效性。我只想在url的html源代碼上使用一些正則表達式。 – vanna 2013-05-01 16:20:18