WishMeLz

生活其实很有趣

JavaScript监听页面内的ajax请求

	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都可以拦截到。

注意:拦截器需要写在所有请求的前面,写在后面拦截不到。