1
所以問題是我不斷收到這個錯誤。它非常間歇,看起來像一個Loch Ness Monster bug。由於在我的系統上從來沒有看到過,我只是有錯誤報告,我檢查了堆棧溢出。只有2個問題像我一樣存在但沒有答案。所以這裏是代碼。在同一個域上跨域jquery ajax錯誤
$(function() {
$.get("http://mysite.com/menu/popoutmenu1.php", {}, function(response) {
$("body").append(response);
})
})
當該代碼執行(顯然不是我正在使用的代碼的確切副本)我得到這個錯誤。
XMLHttpRequest cannot load http://www.mysite.com/menu/popoutmenu1.php.
Origin http://mysite.com is not allowed by Access-Control-Allow-Origin.
現在,這在我的計算機上完全正常,但在我的朋友計算機(它在某個網站上)出現相同的錯誤!我已經嘗試了幾臺電腦,它們都工作。我對此很困惑。
如果有人有任何建議,將是偉大的,謝謝。
有趣...我將不得不看看是否有效。它只是沒有任何意義,因爲它們都來自同一臺服務器。 – Michael
相同的源策略不僅適用於相同的服務器,而且適用於相同的連接細節(例如端口)。在您提供的錯誤消息中,有一個是二級域名「mysite.com」,另一個域名是「www」主機名。轉發代理最有可能是重定向,而不是透明地處理不同的主機名,或者可能服務器配置爲使用與您使用的主機名不匹配的特定主機名。無論哪種方式,名稱在請求和響應之間改變,這足以打破SOP的限制。 –
所以這就是我所做的(因爲我有幾臺服務器) 所有的ajax查詢都使用我的命名空間'myNamespace.getUrl()'。好的部分是我的'getUrl()'返回http://www.mysite.com/它現在只是使用相對根路徑(取決於服務器(測試/舞臺/產品有不同的)。非常感謝你!('getUrl()'由'php'sies設置。 – Michael