Javascript 拦截AJAX响应时推断请求方法
由于没有更好的词,我正在全球范围内拦截所有AJAX响应——是否有任何优雅的方法来确定最初用于执行触发被拦截响应的请求的方法(Javascript 拦截AJAX响应时推断请求方法,javascript,ajax,Javascript,Ajax,由于没有更好的词,我正在全球范围内拦截所有AJAX响应——是否有任何优雅的方法来确定最初用于执行触发被拦截响应的请求的方法(POST/PUT/GETetc) 下面是我执行截取的步骤: (function() { var origOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function() { this.addEventListener('load', function() {
POST/PUT/GET
etc)
下面是我执行截取的步骤:
(function() {
var origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
this.addEventListener('load', function() {
if (this.readyState === 4) {
// what was the method used in the *original* request?
}
});
origOpen.apply(this, arguments);
};
})();
我无法添加评论或将此任务标记为dup,因为没有足够的重复次数,但我认为这已经在这里得到了回答:我看不出这有什么相似之处-你发布的答案只是劫持了一个AJAX调用-我同样,是的,拦截它们,但只是
响应
,非send
-问题是如何跟踪触发我正在拦截的响应的原始被调用方。在该回答中,OP还会对另一个回答留下注释,其中open
被一个函数覆盖,该函数获取url
,并且您所追求的方法也被传递到那里: