挂钩页面上的所有 AJAX 请求
修改 AJAX 请求以执行其他操作对于调试、分析或其他目的至关重要。然而,由于页面上有多个第三方脚本使用不同的 AJAX 库,拦截所有这些脚本似乎具有挑战性。
拦截 AJAX 请求
监控每个 AJAX请求时,您可以使用 XMLHttpRequest 对象。这是一个强大的解决方案,甚至可以与多个库一起使用:
(function() { var origOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function() { console.log('request started!'); this.addEventListener('load', function() { console.log('request completed!'); console.log(this.readyState); //will always be 4 (ajax is completed successfully) console.log(this.responseText); //whatever the response was }); origOpen.apply(this, arguments); }; })();
此代码重写 XMLHttpRequest 的 open 方法来注册加载事件的事件侦听器。当发起请求时,它会记录开始时间。请求完成后,它会记录结束时间、就绪状态和响应文本。
注意: 请记住,此方法不适用于本机提取请求。不过,如果有必要,您可以采用类似的代理方法进行 fetch。
以上是如何拦截网页上的所有 AJAX 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!