【问题标题】:Overriding XMLHttpRequest on Internet Explorer在 Internet Explorer 上覆盖 XMLHttpRequest
【发布时间】:2016-11-30 00:58:43
【问题描述】:

我必须检测在特定网页中发出的所有 ajax 请求(长话短说)。我提出的想法是覆盖XMLHttpRequest

我开发了一个简单的脚本来满足我的需要。它可以在 Firefox、Chrome 和 Opera 上完美运行,但不能在 Internet Explorer 上运行。 IE 只是忽略了我覆盖的行为。

如何在 Internet Explorer 上覆盖 XMLHttpRequest

在 Chrome 上(有效):

在 IE 上(不起作用):

【问题讨论】:

  • 你需要隔离你的测试。
  • “隔离”是什么意思?

标签: javascript ajax internet-explorer browser xmlhttprequest


【解决方案1】:

如果您试图检测它,您可以覆盖 open 方法。

(function(){
  var oOpen = XMLHttpRequest.prototype.open;
  XMLHttpRequest.prototype.open = function() {
    console.log("here");
    oOpen.apply(this, arguments);
  };
}());

【讨论】:

  • 它在 IE 上也不起作用...顺便说一下,我正在覆盖 send 方法,ctor 覆盖只是一个易于重现的示例。
  • 你可能也需要这样做stackoverflow.com/questions/797960/…
【解决方案2】:

我在使用 IE9 时遇到了同样的问题。切换到 IE11 就可以正常使用了。

【讨论】:

  • 很遗憾,我必须支持旧的 IE 版本。
猜你喜欢
  • 2010-10-21
  • 1970-01-01
  • 2015-10-14
  • 2012-03-18
  • 1970-01-01
  • 2017-06-18
  • 2023-03-22
  • 2019-08-30
  • 2011-05-08
相关资源
最近更新 更多