我想知道是否可以“挂钩”每个 AJAX 请求(无论是即将发送的请求,还是事件上的请求)并执行操作。此时,我假设页面上还有其他第三方脚本。其中一些可能使用 jQuery,而另一些则不使用。这可能吗?
注意:接受的答案不会产生实际的响应,因为它被调用得太早了。
你可以这样做,这通常会拦截any全局 AJAX,不会搞砸任何可能由任何第三方 AJAX 库分配的回调等。
(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);
};
})();
有关您可以使用 addEventListener API 执行哪些操作的更多文档,请参见此处:
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Monitoring_progress
(请注意,这在
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)