Skip to content

Instantly share code, notes, and snippets.

@icodejs
Created July 26, 2012 16:47
Show Gist options
  • Save icodejs/3183154 to your computer and use it in GitHub Desktop.
Save icodejs/3183154 to your computer and use it in GitHub Desktop.
JS: Listen to ajax calls from Javascript
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;
@rokobuljan
Copy link

@rolfen
Copy link

rolfen commented Oct 10, 2017

Thank you!

@MarkoNikolov-zz
Copy link

Awesome work! Thanks.

@yashojha87
Copy link

Thanks

@foo123
Copy link

foo123 commented Mar 4, 2023

More generic approach https://stackoverflow.com/a/72555729

@chrissilkey
Copy link

Server invalidates cookies at 30 minutes. I used a ping function to keep login active for some users. Now I want to use a timer instead but ajax calls are happening all over so a listener to reset a timer yielding time lapsed since last ajax call should solve this nicely.

Thank you very much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment