我们发现对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();

最佳答案

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

xdr.onprogress = function () { };


Perry Mitchell的This helpful blog post发现了问题。有趣的是,除兼容模式外,每次都异常终止-可能是由于我在虚拟机中运行IE9的事实而导致超时。

08-06 07:04