【发布时间】:2023-03-28 15:19:02
【问题描述】:
SCRIPT7002:XMLHttpRequest:网络错误 0x2ef3,无法完成 由于错误 00002ef3 导致的操作
目前没有有效的解决方案。
更新:在 IE11 上也注意到了。
经过越来越多的调查,我得出了这个结果:
- 这个问题是我的应用程序特有的,它不会发生在 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 开发人员联系,告诉我们此错误“网络错误 0x2ef3”映射到什么?
目前我正在做的临时解决方案是,如果 HTTP 状态代码为零,则最多重试 3 次。但这很丑陋,因为有时甚至上传请求都会失败,并且对于那些有重试的请求会变得很慢,有时会花费额外的100ms。
重现步骤:
- 确保 fiddler 或代理已禁用。
- http://ie10.laiths.name/#!login
- 打开 IE10 控制台,删除浏览器缓存。
- 试试这个无效的登录:random@rand.com/random
- 3-4 次(清除缓存/无效登录)后,您将看到此错误:SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, 由于错误 00002ef3 无法完成操作。
我的 IE 版本:
- Win7 IE10版本:10.0.9200.16618
- 更新版本:10.0.6 (KB2838727)
现在,如果browser is IE10 && Request is POST && HTTP status code is 0,我最多重试 3 次来解决它。
如果有人可以帮助我删除我丑陋的解决方案,我将不胜感激,因为使用这样的解决方案,即使请求发送到服务器并返回 0,我也会重试(我试图通过测量之间的时间来避免这种情况xhr.send 及其回调,但它不可靠),如果 IE10 在 comptMode 下怎么办,如果 IE11 有同样的问题怎么办,增加性能,每次重试之间在我的机器上大约需要 170 毫秒。
【问题讨论】:
-
我无法在 IE10 中重现此内容。尝试了大约 10 次。
-
我正在添加自动重试,您是否尝试在每次尝试之前清除缓存?你在使用开发者工具栏删除缓存按钮吗?
-
是的,每次尝试后我都通过单击缓存(在开发人员工具中)-> 清除浏览器缓存... 清除了缓存
-
现在我再次尝试,它发生在我身上。我正在使用 Win7 IE10 版本:10.0.9200.16618,更新版本:10.0.6 (KB2838727)。我关闭了我的提琴手或任何其他代理(出于某种原因,像提琴手这样的代理不会发生)。打开IE启动网络捕获,尝试invalid-login-clear-cache,2次后出现问题。
-
只是好奇,这是在 Vista 上吗?
标签: javascript ajax post xmlhttprequest internet-explorer-10