微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XHR 请求响应流在 IE 中有效但在 Edge 中无效

如何解决XHR 请求响应流在 IE 中有效但在 Edge 中无效

如果您有时间,我将针对返回 XML 流的 Tomcat servlet 发出 XHR 请求。我一直在研究从 ActiveX MSXML 转换为 XHR 的规模。我合并了承诺,因为 ActiveX 是同步的,而 XHR 是异步的。返回的 XML 很庞大,但 XHR 请求在 IE 11 中没有问题。Edge 似乎挂起并停止执行。什么都没发生。另一个“较小的”XHR 请求,获取 XSL,很好。 Tomcat 日志说它处理来自 Edge 的请求并发送响应,没问题。无论如何,代码非常简单。非常感谢。

 xmldoc =  new XMLHttpRequest();
    return new Promise(function(resolve,reject) {
        setTimeout(function() {           
            xmldoc.onreadystatechange = function() {
                if (this.readyState == 4 && this.status ==  200) {
               
                   alert(xmldoc.responseText);
                   resolve(xmldoc);
                } 
            };
            xmldoc.open("GET",url,true);
            xmldoc.send();     
        },200);
    });

解决方法

弄清楚如何在 Edge 中调试后,结果是 Tomcat 的 CORS 过滤器错误。我在 web.xml 中设置了过滤器,使用特定的 cors.allowed.origins。 tomcat.apache.org/tomcat-9.0-doc/config/filter.html#CORS_Filter

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。