我正在通过一个IE插件注入到每个页面上的iframe发出一个ajax请求。我使用IE的cross domain request,因为jQuery的ajax在IE中失败。这对IE8的75%时间工作& 9.其他25%,xdr.onload
甚至没有火灾。来自IE的ajax(XDR)响应不一致
服务器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();
只是一个随机猜测:你可以尝试添加一个无用的参数到URL的末尾,以确保浏览器绕过它的缓存......如果它发生在我身上,我会自己尝试,但是你可能不会有兴趣浪费时间完成猜测:-) – Pointy 2011-03-09 18:17:15
...或者只是使用'POST',它根本不会被缓存。另外,我会绑定'xdr.onerror ='来查看是否会触发。不幸的是,XDR错误没有错误描述。另外,请确保''Access-Control-Allow-Origin'标头设置为'*' – jAndy 2011-03-09 18:19:26
@Point,t实际上是math.random ...我编辑了我的答案。这是一个很好的猜测。这不会被缓存,虽然 – Kyle 2011-03-09 18:35:56