我遇到了這個問題。我想這是一些IE錯誤,但我想確定。IE 10中XmlHttpRequest狀態0而不是401
所以問題是。爲什麼IE10 XmlHttpRequest.status返回0而不是401?
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
document.getElementById("rescode").innerHTML="Request completed with status: "+xmlhttp.status;
}
}
xmlhttp.open("GET","http://hosting.gregy.cz/cors/",true);
xmlhttp.send();
看到這裏plunker:http://plnkr.co/edit/E2lCflPDHHaQi7t79IeM?p=preview
此代碼觸發一個CORS請求,它總是返回401火狐和Chrome的狀態屬性正確地返回401,但IE10返回0。我用這個問題中斷認證處理方法我的項目。
謝謝
編輯:
我已經修改了與的onload和onerror事件處理程序(從monsur的評論TIP)的plunker,但結果還是一樣。
我也確定IE10沒有選擇兼容模式。 (來自cernunnos評論的提示)
@rekire:CORS是規避SOP的一種方法。這不是重複的。 – Matt
IE10支持CORS,而你的服務器響應似乎有必要的頭文件,你確定你沒有在兼容模式下運行IE10嗎?也許IE9/8/7瀏覽器模式/文檔模式? – cernunnos
嘗試附加到更新的'onload'和'onerror'方法,並查看您在每個方法中獲得的狀態。 – monsur