Возможно, вы можете попробовать что-то вроде этого:
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. Я думаю, что это должно работать независимо от структуры, которая использовалась, чтобы сделать запрос.
РЕДАКТИРОВАТЬ 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, поэтому я не могу его проверить. Но попробуй и дай мне знать, все ли получилось.