Internet Explorer 9-X域请求仅适用于兼容模式

时间:2015-08-04 11:23:21

标签: javascript ajax internet-explorer internet-explorer-9 xdomainrequest

我们发现我们对JSON资源的ajax调用在IE9中无效,我们必须使用X域请求API。但我的调用只是不调用“onload”函数,除非浏览器设置为兼容模式 - 这不是一个选项。

var xdr = new XDomainRequest(); // Use Microsoft XDR
xdr.open('get', uri);
xdr.onload = function () {
    //debugger;
    var JSON = $.parseJSON(xdr.responseText);

    if (JSON == null || typeof (JSON) == 'undefined') {
        JSON = $.parseJSON(data.firstChild.textContent);
    }

    ieCallback(JSON);
 };

xdr.onerror = function () {

    _result = false;
};

xdr.send();

1 个答案:

答案 0 :(得分:1)

问题是由IE9中的明显错误导致的,导致XDR调用中止。解决方案是使用空函数覆盖默认的xdr.onprogress方法:

xdr.onprogress = function () { };
Perry Mitchell的

This helpful blog post发现了这个问题。有趣的是,除了兼容模式之外,它每次都在中止 - 也许超时是由我在虚拟机中运行IE9的事实所影响的。