IE11 HTTPS AJAX XMLHttpRequest:网络错误0x2eff,由于错误00002eff无法完成操作

时间:2015-12-02 18:02:42

标签: javascript ajax internet-explorer post jboss

我有一个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
}); 

3 个答案:

答案 0 :(得分:7)

  
    

可能需要2秒到30分钟以上

  

我认为这是因为要传输大量数据。

我创建了大型文件上传器,可处理20GB +视频文件,可能会持续数小时。

根据我的经验 - 使用单个ajax请求上传大数据可能会导致奇怪的浏览器崩溃(例如,我的Chrome浏览器在大约20%的上传测试中崩溃)。

我发现最可靠的方法是以1MB的块分割数据,然后通过单独的ajax请求将它们顺序发送到服务器。

答案 1 :(得分:7)

我们花了几天的时间寻找此问题的原因!

  • 在控制台中: 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自动更新的人员/公司,此问题会随着时间的流逝而消失。 used Windows 10 versions WorldWide

我们在较旧的Windows 10版本上对此进行了测试,并且确实可以解决该问题。

一些临时解决方案可能是:

  • 针对IE和Edge禁用HTTP / 2,并使用HTTPS(服务器端)。
  • 使用GET(如果可能)
  • PUT也有这个问题吗?
  • 重试
  • 接受IE / Edge用户的处罚;-)

答案 2 :(得分:0)

在我的情况下,这是服务器返回的自定义响应代码(3020)。将其切换为200,并修改了SPA客户端逻辑,从而解决了该问题。