var originOpen = XMLHttpRequest.prototype.open;
var originSend = XMLHttpRequest.prototype.send;
// 重写open
XMLHttpRequest.prototype.open = function () {
// this.addEventListener('loadend', function(){ });
// this.addEventListener('readystatechange', function (obj) { });
this.addEventListener('load', function (obj) {
var url = obj.target.responseURL; // obj.target -> this
console.log('load', url, this.status, this.response);
});
originOpen.apply(this, arguments);
};
// 重写send
XMLHttpRequest.prototype.send = function () {
console.log('send', arguments);
originSend.apply(this, arguments);
};
JQuery的Ajax和原生Ajax都可以拦截到。
注意:拦截器需要写在所有请求的前面,写在后面拦截不到。