我正在从 iframe 发出 ajax 请求,该请求通过 IE 插件注入到每个页面上。我用的是IE跨域请求因为 jQuery 的 ajax 在 IE 上失败。这在 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();
我遇到了一个非常相似的问题:尽管 Fiddler 显示所有请求和响应标头都完全按照我的预期发送,但 XDomainRequests 仅在某些时候失败。我已经在这些 XDR 对象上定义了每个事件处理程序和超时属性,但没有调用任何处理程序。 F12 开发人员工具将请求显示为已中止。对于多个不同的域,GET 和 POST 都可能被中止,但第一个请求始终成功。
然后我尝试拨打电话xdr.send
在超时时,像这样:
setTimeout(function () {
xdr.send();
}, 0);
它起作用了。我不知道为什么,但也许这对其他人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)