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

Javascript IE11 HTTPS AJAX XMLHttpRequest:网络错误0x2eff,由于错误00002eff,无法完成操作,javascript,ajax,internet-explorer,post,jboss,Javascript,Ajax,Internet Explorer,Post,Jboss,我有一个ajax POST请求,可能需要2秒到30分钟以上的时间。post请求是按钮单击的结果 如果请求不到一两分钟,它会返回一个响应,一切正常。但是,如果请求耗时超过两分钟,则返回“网络错误:XMLHttpRequest:网络错误0x2eff,由于错误00002eff,无法完成操作” 当然,它在Firefox和Chrome上运行良好 应用程序部署在启用SSL的JBoss服务器上。这里的架构是我们有一个负载平衡器,它将请求路由到两个Jboss服务器 Internet Explorer 版本:11

我有一个ajax POST请求,可能需要2秒到30分钟以上的时间。post请求是按钮单击的结果

如果请求不到一两分钟,它会返回一个响应,一切正常。但是,如果请求耗时超过两分钟,则返回“网络错误:XMLHttpRequest:网络错误0x2eff,由于错误00002eff,无法完成操作”

当然,它在Firefox和Chrome上运行良好

应用程序部署在启用SSL的JBoss服务器上。这里的架构是我们有一个负载平衡器,它将请求路由到两个Jboss服务器

Internet Explorer

版本:11.0.9600.180971C 更新:11.0.25

我尝试了以下方法,但没有成功

1) ajax将缓存设置为false-不起作用

2) 根据更改的注册表设置-不起作用,这里是它变得混乱的地方,这表明它不是IE的东西,但同时它在chrome和ff上起作用,所以它也不是服务器的东西

3) 将ajax超时设置为0-不起作用 4) 在$('#mdlSgn')之后添加了e.preventDefault。单击(函数(){根据

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

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

我创建了一个大型文件上传器,它可以处理20GB以上的视频文件,并且可以持续几个小时

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


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

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

  • 在控制台中:SCRIPT7002:XMLHttpRequest:networkerror 0x2eff,由于错误00002eff,无法完成操作
  • 在IE/Edge的网络选项卡中,我们将失败的请求视为“挂起…”
  • XmlHTTPRequest/JQuery在客户端返回404错误,但服务器成功返回200响应
  • 没有返回响应头
我们只是在使用所有这些时出现了这个问题:

  • HTTP/2
  • 张贴请求
  • 视窗10
  • 边缘
显然,这是HTTP堆栈中的一个Windows 10错误,现在在Windows 10版本1803(2018年4月)中得到解决。 因此,通常情况下,对于使用Windows自动更新的人员/公司来说,这个问题会随着时间的推移而消失

我们在旧版本和新版本的Windows10上测试了这个问题,它确实得到了解决

一些临时解决办法可以是:

  • 禁用IE和Edge的HTTP/2并使用HTTPS(服务器端更改)
  • 使用GET(如果可能)
  • 放也有这个问题吗
  • 如果没有返回响应头,请重试
  • 接受IE/Edge用户将受到惩罚;-)

在我的例子中,是自定义响应代码(3020)从服务器返回。将其切换到200并修改SPA客户端逻辑,这就解决了问题。

是的,我知道这需要30分钟,用户对它很满意,他们希望看到成功的响应,然后您了解了一些用户。如果是我,我会让服务器立即响应,将任务放入工作队列,然后通知w当事情完成并且结果可用时。好吧,这是一种方法,但问题是它以前工作得很好,我想知道为什么IE会这样做的根本原因?为什么不将处理作为原始请求的一部分(异步调用处理并立即返回),而是有某种状态/状态请求,您可以定期调用该请求以检查处理是否已完成?如果您需要,我可以描述详细的示例。谢谢您的回答,琥珀色,但这不是文件上载,而是后端进程需要花费那么多时间…@user1707141我找到了错误的解决方法您提到的代码,请尝试:“打开Internet选项,选择“高级”选项卡,然后单击“恢复高级设置”按钮。之后,Ajax请求工作正常。”我们公司的IE设置是由系统管理员决定的,因此我在这方面没有太大的灵活性。你能给我提供大文件上传的代码吗?我面临的问题与我使用jquery.filedrop.js和mvcThank进行拖放上传时所做的控件相同。谢谢你分享这个!我这里有一个必须使用的应用程序IE支持。事实上,我有一个问题-我目前使用的是windows 7,而不是10,版本6.1.7601-Win 7中是否也存在此问题?
$('#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
});