我正在尝试对一个使用XDomainRequest (IE8)返回json的服务进行异步调用。问题是我总是得到一个错误( onerror事件被触发,responseText总是为空),我正在使用fiddler检查服务的响应,我看起来是正确的(我可以看到json对象返回),这只在使用XDomainRequest时在IE8中发生,在JQuery中实现的相同功能工作得很好。
任何线索都将不胜感激。谢谢!
附言:这是我的javascript代码:
.....
if (jQuery.browser.msie && window.XDomainRequest) {
//Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("post", url);
xdr.onload = function () {
alert("Loading");
alert(xdr.responseText);
};
xdr.onsuccess = function() {
alert("Success!");
alert(xdr.responseText);
};
xdr.onerror = function() {
alert("Error!");
alert(xdr.responseText);
};
xdr.onprogress = function() {
alert("Progress");
alert(xdr.responseText);
};
xdr.timeout = 1000;
xdr.send("data: " + escape(data));
var response = xdr.responseText;
} else .....发布于 2011-01-20 05:06:25
您确定服务正在发送与请求的Access-Control-Allow-Origin-header匹配的URL吗?
发布于 2011-02-10 01:40:30
您的问题可能是发送的内容类型,因为XDomainRequest只支持“文本/纯文本”。
参考:http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
干杯,
安德烈·佩德罗索
发布于 2012-03-28 07:33:45
一年前的帖子,你还在吗,GiaNU?!您正在调用xdr.onsuccess,但我认为该方法不存在。xdr.onload可以工作,看起来相当于jQuery的AJAX“成功”函数。
这个X-Domain的东西是非常新的,但现在有一个非常好的工作模型可以从MS这里获得:AJAX - Introducing Cross-domain Request (XDR)
我不能做一件事,但还没找到需要的xdr.ontimeout :)我先用jQuery启动并运行,现在用ie9感谢MS帖子。
XDR对我当前应用程序的计时有一些问题,只是使用了一个超时来处理它:
xdr.onload = setTimeout( function(){ doIt( xdr.responseText ), 2000});https://stackoverflow.com/questions/4739384
复制相似问题