我有一个ajax POST请求,可能需要2秒到30多分钟。由于按钮单击
,发生了发布请求如果请求的时间不到一两分钟,则会返回响应,一切正常。但是,如果请求的时间超过两分钟,则返回“网络错误:XMLHttpRequest:网络错误0x2eff,由于错误00002eff无法完成操作”。
当然,它可以很好地运行Firefox和Chrome。
应用程序部署在启用了SSL的JBoss服务器上。这里的体系结构是我们有一个负载均衡器,可以将请求路由到两个Jboss服务器。
Internet Explorer
版本: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 requests are getting cancelled without being sent
$('#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
});
答案 0 :(得分:7)
可能需要2秒到30分钟以上
我认为这是因为要传输大量数据。
我创建了大型文件上传器,可处理20GB +视频文件,可能会持续数小时。
根据我的经验 - 使用单个ajax请求上传大数据可能会导致奇怪的浏览器崩溃(例如,我的Chrome浏览器在大约20%的上传测试中崩溃)。
我发现最可靠的方法是以1MB的块分割数据,然后通过单独的ajax请求将它们顺序发送到服务器。
答案 1 :(得分:7)
我们花了几天的时间寻找此问题的原因!
在使用所有这些时,我们只有这个问题:
显然,这是HTTP堆栈中的 Windows 10错误,现已在Windows 10版本1803(2018年4月)中解决。 因此,通常对于使用Windows自动更新的人员/公司,此问题会随着时间的流逝而消失。 used Windows 10 versions WorldWide
我们在较旧的Windows 10版本上对此进行了测试,并且确实可以解决该问题。
一些临时解决方案可能是:
答案 2 :(得分:0)
在我的情况下,这是服务器返回的自定义响应代码(3020)。将其切换为200,并修改了SPA客户端逻辑,从而解决了该问题。