gpt4 book ai didi

javascript - IE7+8 的 AJAX readystatechange 监听器

转载 作者:可可西里 更新时间:2023-11-01 02:27:50 27 4
gpt4 key购买 nike

(function (send) {

XMLHttpRequest.prototype.send = function () {

this.addEventListener('readystatechange', function() {

console.log('readyState changed');

}, false);

send.apply(this, arguments);
};

})(XMLHttpRequest.prototype.send);

这可行,但它似乎影响了其他框架(如 jQuery)。当我使用上面的代码时,我的 jQuery ajax 调用没有完成 (IE7 + IE8)。

有没有办法给事件一个新的别名,这样它就不会引起任何冲突(我只是假设这就是问题所在)?

而且我不能使用 this.onreadystatechange,因为 jQuery 正在覆盖它(参见 Fiddle)。

我一绑定(bind)事件监听器,代码似乎就无提示地失败了,所以我无法使用控制台进行调试。

Fiddle

Compare in ie8 vs ie9 mode and notice that the console is empty in ie8

我需要这个的原因是我想要一个用于另一个框架 (GWT) 的全局 ajax 处理程序。我现在使用 jQuery 只是为了测试它。

编辑:看起来只有 ie9 支持 addEventListener。然而,attachEvent在ie7-8中似乎并不存在于XHR对象上。

最佳答案

我们遇到过类似的问题,jquery 在 IE8 上失败。我假设您正在发出跨域请求。 Jquery 通过 XMLHttpRequest 执行 ajax,但 IE8 已将 XMLHttpRequest 对象替换为 XDomainRequest,jquery 人员不支持它。因此对于 IE8,您必须修改代码以将 XDomainRequest 与 jquery 一起使用。

查看链接

Using jquery ajax for IE8

关于javascript - IE7+8 的 AJAX readystatechange 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com