使用Javascript拦截或捕获Ajax调用

Intercept or catch Ajax Calls with Javascript

本文关键字:Ajax 调用 Javascript 使用      更新时间:2023-09-26

是否可以创建一个Javascript并将其包含在网页中,该JS的功能是"捕获"页面上任何其他Javascript发出的所有GET请求或任何其他Ajax调用?要么记录它,要么直接在"警报"框中显示它。

将执行GET或Ajax调用的"其他Javascript"是任意的。我的意思是,我无法控制它是什么。

一旦被捕获,我需要检查哪个Javascript正在执行哪个GET或Ajax调用。

这可能吗?

试试这个片段。它扩展了send函数,以便您可以在实际发送之前或之后执行某些内容。

XMLHttpRequest.prototype.reallySend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(body) {
    // Do something...
    this.reallySend(body);
};
var req = new XMLHttpRequest();
req.open("GET", "any.html", true);
req.send(null);
const nativeOpen = XMLHttpRequest.prototype.open;
const proxiedOpen = function () {
  if (arguments[1].includes('youUrl.com')) {
    // do some ...
  }
  nativeOpen.apply(this, arguments);
};

参考答案:

拦截并更改ajax调用的结果