gpt4 book ai didi

javascript - 如何监听所有的 fetch API 调用?

转载 作者:行者123 更新时间:2023-11-29 19:10:45 26 4
gpt4 key购买 nike

我们可以修改XMLHttpRequest.prototype.open来劫持之前的所有Ajax请求。如果切换到新浏览器的 fetch API,等效于什么?

const originalRequestOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
this.addEventListener('load', function() {
// do something
});
originalRequestOpen.apply(this, arguments);
};

最佳答案

我不建议修改 native 对象和函数(即使是您使用 XMLHttpRequest.prototype.open 所做的方式)。但是您可以替换 fetch 函数本身。最后它只是一个函数。

(function(ns, fetch) {
if (typeof fetch !== 'function') return;

ns.fetch = function() {
var out = fetch.apply(this, arguments);

// side-effect
out.then(({ ok }) => console.log('loaded', ok));

return out;
}

}(window, window.fetch))

fetch('https://jsonplaceholder.typicode.com/users')
fetch('https://jsonplaceholder.typicode.com/userz')

关于javascript - 如何监听所有的 fetch API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com