我有一个ajax POST请求,可能需要2秒到30多分钟.单击按钮后会发出发布请求
如果请求不到一两分钟,它会回复一个响应,一切正常.但是,如果请求花费的时间超过两分钟,则会返回"网络错误:XMLHttpRequest:网络错误0x2eff,由于错误00002eff无法完成操作".
当然,它可以很好地运行Firefox和Chrome.
该应用程序部署在启用了SSL的JBoss服务器上.这里的架构是我们有一个负载均衡器,可以将请求路由到两个Jboss服务器.
IE浏览器
版本:11.0.9600.180971C更新:11.0.25
我尝试过以下但是徒劳无功
1)ajax将缓存设置为false - 不起作用
2)根据https://support.microsoft.com/en-us/kb/813827更改了注册表设置- 无法正常工作,这里是令人困惑的地方,这表明它是不是IE的东西,但同时这适用于chrome和ff所以它也不是服务器的东西
3)将ajax超时设置为0 - 不起作用4)在$('#mdlSgn')之后添加了e.preventDefault.点击(function(){根据jQuery Ajax请求被取消而不被发送
$('#mdlSgn').click(function() { $('#cnfdsgl').modal('hide'); $.ajax({ url: ajaxUrl, type: "POST", data: JSON.stringify(input), contentType: "application/json; charset=UTF-8", dataType: "json", success: function(data) { /// some logic }, error : function(jqXhr, textStatus, errorThrown) { /// some logic } }); //some other logic });
Jo VdB.. 12
我们花了几天的时间寻找此问题的原因!
在控制台中:SCRIPT7002:XMLHttpRequest:网络错误0x2eff,由于错误00002eff而无法完成操作。
在IE / Edge的网络标签中,我们将失败的请求视为“待处理...”
XmlHTTPRequest / JQuery在客户端返回404错误,但服务器成功返回200响应。
使用所有这些时,我们只有这个问题:
HTTP / 2
POST请求
Windows 10
IE或Edge
显然,这是HTTP堆栈中的Windows 10错误,现在已在Windows 10版本1803(2018年4月)中解决。因此,通常对于使用Windows自动更新的人员/公司,此问题会随着时间的流逝而消失。使用Windows 10版本的WorldWide
我们在较旧的Windows 10版本上对此进行了测试,确实可以解决。
一些临时解决方案可能是:
对IE和Edge禁用HTTP / 2,并使用HTTPS(服务器端)。
使用GET(如果可能)
PUT也有这个问题吗?
重试一些
接受IE / Edge用户将受到惩罚;-)
ujeenator.. 7
可能需要2秒到30多分钟
我认为这是因为需要传输大量数据.
我创建了大型文件上传器,可处理20GB +视频文件,可能持续数小时.
根据我的经验 - 使用单个ajax请求上传大数据可能会导致奇怪的浏览器崩溃(例如我的Chrome浏览器在大约20%的上传测试中崩溃).
我发现,最可靠的方法是将数据分成1MB的块,然后通过单独的ajax请求将它们顺序发送到服务器.
我们花了几天的时间寻找此问题的原因!
在控制台中:SCRIPT7002:XMLHttpRequest:网络错误0x2eff,由于错误00002eff而无法完成操作。
在IE / Edge的网络标签中,我们将失败的请求视为“待处理...”
XmlHTTPRequest / JQuery在客户端返回404错误,但服务器成功返回200响应。
使用所有这些时,我们只有这个问题:
HTTP / 2
POST请求
Windows 10
IE或Edge
显然,这是HTTP堆栈中的Windows 10错误,现在已在Windows 10版本1803(2018年4月)中解决。因此,通常对于使用Windows自动更新的人员/公司,此问题会随着时间的流逝而消失。使用Windows 10版本的WorldWide
我们在较旧的Windows 10版本上对此进行了测试,确实可以解决。
一些临时解决方案可能是:
对IE和Edge禁用HTTP / 2,并使用HTTPS(服务器端)。
使用GET(如果可能)
PUT也有这个问题吗?
重试一些
接受IE / Edge用户将受到惩罚;-)
可能需要2秒到30多分钟
我认为这是因为需要传输大量数据.
我创建了大型文件上传器,可处理20GB +视频文件,可能持续数小时.
根据我的经验 - 使用单个ajax请求上传大数据可能会导致奇怪的浏览器崩溃(例如我的Chrome浏览器在大约20%的上传测试中崩溃).
我发现,最可靠的方法是将数据分成1MB的块,然后通过单独的ajax请求将它们顺序发送到服务器.