发送XMLHttpRequest(JavaScript),获取响应状态12002(仅限IE)

时间:2016-09-20 11:49:52

标签: javascript internet-explorer tomcat xmlhttprequest connection-timeout

我在JavaScript中遇到异步请求的问题 - 但仅限于Internet Explorer中。我们正在使用Apache Tomcat 6.0.18,Java 6.0.11,IE 8,IE 10(不要问自己 - 它是客户基础架构,但我也遇到了与Tomcat 8相同的问题)。

幕后:有一个服务器应用程序(Java),一旦客户端发送请求(Java Script)就会开始生成文件。对于大多数情况,生成所请求的文件只需要几分钟(<5分钟),但还有另一种情况:一个巨大的Zip - 21MB - 创建需要一个多小时。

    var xhr = new XMLHttpRequest();
    xhr.open('POST', pathprefix + "/ssi/" + paramArea + "_suchfunction.html?" + command + "=true", true);
    //Trigger the file generation process
    xhr.onreadystatechange = function() {
                        try{
                            if(xhr.readyState == 4) {
                                if ((xhr.status == 200) || (xhr.status == 0)) {
    //wait until ready, get the file as a downloadable 
到目前为止,没问题。上面的代码在Firefox,Chrome和Safari中运行良好。但是猜猜看,IE表现得与众不同(惊喜)。 一小时后,我收到超时错误(xhr.status = 12002)。

我研究了很多。不幸的是,我没有找到任何工作建议。这是我到目前为止所尝试的:

  • 设置XMLHttpRequest()的超时时间;显然是无限的 (xhr.timeout = 0;)
  • 在web.xml和server.xml中设置Tomcat服务器的超时
  • Request-Header“Connection:Keep-Alive”

这是微软的官方声明:  https://support.microsoft.com/en-us/kb/181050

你们有什么其他的建议吗?我还能尝试什么? 我知道,1小时以上的处理很多,但就目前而言,我不想重新设计功能。

感谢您提供进一步的建议。

0 个答案:

没有答案