I'm pretty sure you can track each request if you instanciate a new object for each call:
var oXhr;
oXhr = new XMLHttpRequest();
oXhr.id = (new Date()).getTime(); /* just an example. It might be flawed if you process requests more than once per ms */
oXhr.onreadystatechange = function() {
if (oXhr.readyState == 4 && (oXhr.status == 200)) {
//do your stuff here
console.log(this.id);
}
}