XDomainRequest问题

Gia*_*aNU 8 javascript ajax xdomainrequest

我正在尝试使用XDomainRequest(IE8)对返回json的服务进行异步调用.问题是我总是得到一个错误(onerror事件被触发,而responseText总是为null),我正在使用fiddler检查服务的响应,我似乎是对的(我可以看到json对象的返回),这只发生在IE8中使用XDomainRequest时,JQuery中实现的相同功能可以正常工作.

任何线索将不胜感激.谢谢!

PS:这是我的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 .....
Run Code Online (Sandbox Code Playgroud)

Dr.*_*lle 8

您确定该服务正在发送与请求URL匹配的Access-Control-Allow-Origin -header吗?


小智 7

您的问题可能是发送的内容类型,因为XDomainRequest仅支持"text/plain".

参考:http: //blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

干杯,

安德烈佩德罗索