这部分是对解决方法的请求,部分是为了让人们知道 Internet Explorer 的原型实现仍然存在错误。
以下代码在 Internet Explorer 上不起作用。
XMLHttpRequest.prototype.old = XMLHttpRequest.prototype.open;
var x = new XMLHttpRequest();
x.old("POST", "test", false);
对于 IE 8 测试版和所有以前的版本,XMLHttpRequest.prototype 属性从一开始就不存在。在 IE8 中,它确实存在,但您会收到“无效的过程调用或参数”错误。Internet Explorer 不喜欢装饰。
有谁知道这个的解决方法?
更新:
有人指出,我可以用新的函数和构造函数覆盖整个 XMLHttpRequest,然后创建一个包装脚本 ala XMLHttpRequest.js。原型方法要短得多,所以我还是更喜欢将它用于非 IE 浏览器。