当前位置: 首页 > 面试题库 >

IE的不一致Ajax(XDR)响应

应嘉容
2023-03-14
问题内容

我正在通过通过IE插件注入到每个页面的iframe发出ajax请求。我正在使用IE的跨域请求,因为IE的jQuery的ajax失败。在IE8和9上,此功能的工作时间为75%。另外25%的时间xdr.onload甚至不会触发。

服务器php正在执行其工作…该日志在何时onload触发和不触发时看起来相同。另外,xdr.onerror也不会触发。

有任何想法吗?

        thisURL = "http://example.com/getmsg.php?cmd=getMessage&iid=ddeb2c1228&uurl=http%3A%2F%2Fwww.cnn.com%2F&t=" + Math.random();

        // Use Microsoft XDR
        var xdr = new XDomainRequest();
        xdr.open("GET", thisURL);
        xdr.onload = function() {
            // this is sometimes called, sometimes not in IE
            alert('INCONSISTENT ALERT');
            callback(xdr.responseText);
        };
        xdr.send();

问题答案:

在最后一分钟发现了问题。就我而言,即使请求没有超时,我也需要指定一个超时值。为了正确调试XDR问题,我建议使用以下代码,每个警报都告诉您代码的最新情况。正如我所说,就我而言,这是一个缺失的timeout声明。但是下面的代码应该调试任何XDR问题:

       var xdr = new XDomainRequest();
            if (xdr) {
                xdr.onerror = function () {
//                    alert('xdr onerror');
                };
                xdr.ontimeout = function () {
//                    alert('xdr ontimeout');
                };
                xdr.onprogress = function () {
//                    alert("XDR onprogress");
//                    alert("Got: " + xdr.responseText);
                };
                xdr.onload = function() {
//                    alert('onload' + xdr.responseText);
                    callback(xdr.responseText);
                };
                xdr.timeout = 5000;
                xdr.open("get", thisURL);
                xdr.send();
            } else {
//                alert('failed to create xdr');
            }


 类似资料:
  • 它在给定时间仅显示一个命令 如果我写或它不会工作,但如果我写它会输出 如果我切换前面的字符,它将变为或不起作用,但是工作和说再见

  • 如果我执行类似于它工作正常。 但是,我找不到一种方法使其适用于ping。我尝试了机器人ID和名称。我的机器人ID代码: 有人能帮忙吗?

  • 问题内容: 我正在研究一个脚本,以使用jQuery异步加载一些图像。 这是加载图像的函数的代码片段- 我已经在Firefox,Webkit(Safari,Chrome)中对此进行了测试,并且可以正常工作。 图像位于服务器上的文件夹中,而我使用的是jQuery 1.3。 有任何想法吗? 问题答案: 解决此问题的简单方法是提供jQuery设置或或或任何其他可用的响应类型。 我遇到了同样的问题,但是在.

  • 问题内容: 我有一个运行在网页上的脚本,该脚本需要使用JQuery $ .ajax方法(当前使用jquery 1.7.2)将多个GET请求提交到不同域上的服务端点。我的ajax调用可以在IE(9、10、11)中运行,但在Firefox和Chrome中显示401未经授权的响应失败。Chrome中的其他错误消息的一部分是“访问此资源需要完全身份验证”。 我的ajax调用是这样设置的(这些失败的请求的d

  • 问题内容: 我目前正在开发一个纯粹的HTML和JavaScript驱动的Web应用程序,该应用程序使用CORS来使用远程Web服务,但目前在IE 11发出GET请求时遇到了麻烦。有趣的是,我们在IE8 / 9/10中可以正常运行,而不仅仅是11。 问题是IE 11似乎超时,而不是等待服务器的响应。ajax调用很简单: 在“网络”选项卡中,使用Fiddler,我可以看到IE从不发送请求。 请问有人有

  • 问题内容: 我正在尝试上传文件并返回有关文件属性(名称,大小等)的json响应。它在除IE之外的所有浏览器中都能正常工作。 IE尝试将JSON下载为文件! 我有IE10,并通过从调试器更改浏览器模式和文档模式,在IE7到10上对其进行了测试。 我正在使用asp.net mvc4,文件上传操作具有HttpPost属性,并且我使用 return Json(myObject) 返回json响应 ; 这是