SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3IE10/IE11中止後Ajax請求清除緩存錯誤「網絡錯誤0x2ef3」
目前沒有有效的解決方案後。
Update: Noticed on IE11 also.
後越來越多的調查,我帶着這樣的結果:
- 的問題是具體到我的應用程序,它不會發生在Facebook上。
- 這個問題與每個主機的最大請求數量無關(我做過氾濫服務器的示例頁面,IE10能夠同時處理高達8-10個請求,在我的應用程序內部我也嘗試過ajax連續請求,也失敗了)。
- 該問題特定於POST請求。
- 該問題不是特定於所使用的JS庫(我試圖從控制檯直接XMLHttpRequest它也失敗了)。
- 失敗發生在xhr.send(),xhr.readyState = 4和xhr.onreadystatechange觸發後。
- 失敗與任何內容類型,正確的請求或服務器配置無關。它只是客戶端,請求虛擬頁面將失敗,只有最低XHR,只有xhr.open和xhr.send。
- 它主要發生在清除瀏覽器緩存後。
- 在POST之前執行GET請求並不能解決此問題。
我的問題是:
- 如何瀏覽器的緩存可能會影響POST的Ajax請求?
- 是否有任何機構與IE開發者聯繫,告訴我們這個錯誤'Network Error 0x2ef3'映射到了什麼?
現在,我所做的臨時解決方案僅僅是在HTTP狀態碼爲零時重試最多3次。但它非常醜陋,因爲即使上傳請求有時也失敗了,對於那些重試的請求來說速度變慢,有時會需要額外的100ms。
重現步驟:
- 確保小提琴手或代理被禁用。
- http://ie10.laiths.name/#!login
- 打開IE10控制檯,刪除您的瀏覽器緩存。
- 試試這個無效的登錄:[email protected]/random
- 後的3-4倍(清除緩存/無效的登錄),你會看到這樣的錯誤:SCRIPT7002:XMLHttpRequest的:網絡錯誤0x2ef3,無法完成由於錯誤00002ef3的操作。
我的IE版本:
- Win7的IE10版本:10.0.9200。16618
- 更新版本:10.0.6(KB2838727)
現在我通過重試解決它的3倍最高如果browser is IE10
& & Request is POST
& & HTTP status code is 0
。
如果有人可以幫助我刪除我的醜陋解決方案,我將不勝感激,因爲即使請求發送到服務器並返回0,我也會重試(我試圖通過測量時間來避免這種情況在xhr.send和它的回調之間但它不可靠),那麼如果IE10在comptMode中,那麼如果IE11有同樣的問題,那麼增加性能,它會在我的機器上每次重試之間約170ms。
我無法在IE10中重現此操作。嘗試了10次。 – 2013-06-16 17:08:12
我正在添加自動重試,您是否嘗試在每次嘗試之前清除緩存?你使用開發人員工具欄刪除緩存按鈕? – 2013-06-16 18:24:29
是的,我通過點擊緩存(在開發人員工具中) - >清除瀏覽器緩存... – 2013-06-16 19:09:15