2015-11-28 22 views
1

我使用Django作爲Rest API和Angularjs的前端。 我已經在Django中設置了頭域,以便爲域(www.example.com)提供API訪問權限。我可以從我的系統(OS - MAC,瀏覽器:Firefox,Chrome,Safari,Android chrome,本地瀏覽器)中執行ajax調用。幾乎所有的。'訪問控制允許來源'不能在不同系統上工作

現在突然我得到這個錯誤,在特定的操作系統:

XMLHttpRequest cannot load http://www.apicalls.in/. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://www.example.com' is therefore not allowed access. 

我在Windows 10的Chrome瀏覽器得到這個問題(這兩個操作系統都有相同的Chrome版本 - 46.x.x.x)。我無法理解這種行爲,因爲API與所有其他設備使用相同的瀏覽器正常工作。任何人都面臨過這個問題?

回答

0

如果您的服務器配置正確(我的意思是,它尊重CORS規範),那麼它可能是緩存問題。

如果您在阿賈克斯之前,在瀏覽器中檢索http://www.apicalls.in/,(也就是說,已觸發一個GET請求http://www.apicalls.in/與您的請求頭沒有Origin) 那麼你的服務器將成爲網頁沒有Access-Control-Allow-Origin標題作爲迴應。由於相同的原始限制,您對下一個相同URL的ajax請求會觸發瀏覽器緩存並被瀏覽器阻止。

要解決這個問題,您可以在您的請求URL中添加一個隨機參數(例如http://www.apicalls.in/?_=123)或打開Chrome的開發人員工具並在disable cache上進行檢查。祝你好運:)

相關問題