是否有可能通过Javascript处理页面发出的每个GET请求

Is it possible to EventHandle every GET request a page makes via Javascript?

本文关键字:请求 GET 有可能 Javascript 处理 是否      更新时间:2023-09-26

我正在尝试学习编写在 greasemonkey 上运行的用户脚本。

我有一个小型的个人网站(没有人访问),所以我使用它作为我的实验工具。我想在每次页面有GET请求时执行一个功能。我的页面有一些 ajax 请求,一些是用户发起的,一些是定时的。最初我为 DOM 节点插入添加了一个事件处理程序,但我意识到有些请求不会对 DOM 元素进行任何更改。

那么,是否可以向 Web 请求添加钩子?

如果没有,我该如何处理这个问题?我正在尝试在页面上显示一些很酷的统计数据,这些统计数据基本上记录了每个请求的计数器和成功/失败率......全部通过所述用户脚本。

ps:这完全没有意义,但我在假期里出于无聊而开始了这个,现在我无法摆脱它!

也许尝试覆盖XMLHttpRequest open prototype:

var XMLHttpRequestOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function () {
  console.log("XMLHttpRequest open called!");
  /* PUT WHAT YOU NEED HERE */
  XMLHttpRequestOpen.apply(this, arguments);
}

XMLHttpRequest 是浏览器中 AJAX 工作的机制。发出请求时始终调用 open 方法。如上所述,通过"重写"此方法,您可以在每次发送请求时执行一些代码。