Ответ 1
Это старый вопрос, но, возможно, этот ответ может помочь другим.
Чтобы следить за всеми вызовами ajax в HTML-документе, вы можете перезаписать прототип XMLHttpRequest. Таким образом, вы можете наблюдать за действиями над методами объектов XMLHttpRequest.
Вот небольшой пример кода:
var open = window.XMLHttpRequest.prototype.open,
send = window.XMLHttpRequest.prototype.send,
onReadyStateChange;
function openReplacement(method, url, async, user, password) {
var syncMode = async !== false ? 'async' : 'sync';
console.warn(
'Preparing ' +
syncMode +
' HTTP request : ' +
method +
' ' +
url
);
return open.apply(this, arguments);
}
function sendReplacement(data) {
console.warn('Sending HTTP request data : ', data);
if(this.onreadystatechange) {
this._onreadystatechange = this.onreadystatechange;
}
this.onreadystatechange = onReadyStateChangeReplacement;
return send.apply(this, arguments);
}
function onReadyStateChangeReplacement() {
console.warn('HTTP request ready state changed : ' + this.readyState);
if(this._onreadystatechange) {
return this._onreadystatechange.apply(this, arguments);
}
}
window.XMLHttpRequest.prototype.open = openReplacement;
window.XMLHttpRequest.prototype.send = sendReplacement;
С этим образцом для каждого вызова AJAX у вас будет предупреждение в консоли javascript.
Это не jQuery script, но вы можете использовать jQuery внутри, как хотите.
Это решение, вероятно, не будет работать на IE 6 или старше, но оно работает в FF, IE7 +, Chrome, Opera, Safari...