是否可以创建一个Javascript并将其包含在一个网页中,该JS的功能是“捕获”所有GET请求或从页面上的任何其他Javascript进行的任何其他Ajax调用?要么记录它,要么只是在警告框中显示它。
将执行GET或Ajax调用的“其他Javacript”是任意的。我的意思是我无法控制它是什么。
一旦抓到,我需要检查哪个Javascript执行哪个GET或Ajax调用。
这可能吗?
答案 0 :(得分:12)
试试这个代码段。它扩展了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);
答案 1 :(得分:0)
const nativeOpen = XMLHttpRequest.prototype.open;
const proxiedOpen = function () {
if (arguments[1].includes('youUrl.com')) {
// do some ...
}
nativeOpen.apply(this, arguments);
};
参考答案: