Internet Explorer 9- X 域请求仅在兼容模式下有效
Internet Explorer 9- X Domain Request only works in compatability mode
我们发现 ajax 对 JSON 资源的调用在 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 的事实影响的。
我们发现 ajax 对 JSON 资源的调用在 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 的事实影响的。