也许你可以试试这样的:
XMLHttpRequest.prototype.real_open = XMLHttpRequest.prototype.open;
var your_open_method = function(sMethod, sUrl, bAsync, sUser, sPassword) {
alert('an XHR request has been made!');
this.real_open(sMethod, sUrl, bAsync, sUser, sPassword);
}
XMLHttpRequest.prototype.open = your_open_method;
当然,您可以使用自己的跟踪代码代替警报。我试过了,它适用于“普通 javascript”请求以及使用 jquery 发出的请求。我认为无论用于发出请求的框架如何,它都应该可以工作。
编辑 4 月 21 日
我真的不知道如何扩展 ActiveXObject。我的猜测是这样的事情应该可以工作:
XHR = new ActiveXObject("Microsoft.XMLHTTP");
var XHR.prototype.old_open = XHR.prototype.open;
var new_open = function(sMethod, sUrl, bAsync, sUser, sPassword) {
alert('an IE XHR request has been made!');
this.old_open(sMethod, sUrl, bAsync, sUser, sPassword);
}
XHR.prototype.open = new_open;
不幸的是(或者可能没有)我没有 IE,所以我无法测试它。但是试一试,让我知道它是否成功了。