[英]jQuery ajax cross-domain request
我試圖從我的本地環境中使用jQuery發出ajax請求。
$.ajax({
url: requestURL,
dataType: "json",
timeout: 120000,
success: function(data){
// do something
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log("Instants.loadGame: error loading games: error text: " + textStatus + "; error thrown: " + errorThrown);
}
});
我試過使用dataType json和jsonp(因為其他人似乎都解決了此問題),但是我都遇到了錯誤。 使用dataType json時,錯誤響應具有textStatus =“ error”並且errorThrown為空。 使用dataType jsonp時,錯誤響應包含textStatus =“ parsererror”和errorThrown =“未調用jQuery19002007321439859855_1361446807440”。
我知道此代碼在與請求URL相同的域上運行時可以工作,因此我只能認為是因為我在本地環境中執行此操作。 我將cross-domain.xml設置為允許所有操作。 我正在使用jQuery 1.9.0。
有人有什么想法嗎? 我一直在網上看很多東西,但是沒有一個解決方案可以幫助其他人為我工作。
謝謝,希瑟
當您收到類似“未調用jQuery19002007321439439855_1361446807440”的錯誤時,是因為它不是正確的jsonp響應。 使用jsonp時,服務器必須是JavaScript(實際腳本),並且該腳本需要調用作為url的一部分提供的函數(在這種情況下,該函數名為jQuery19002007321439859855855_1361446807440,jQuery映射到您提供的成功處理程序。
最可能的原因是服務器返回了原始的json數據,但無法正常工作。 該數據需要傳遞到腳本。 所以對服務器的請求應該返回類似
var data = {"foo":1}; //your data here
jQuery19002007321439859855_1361446807440(data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.