Ok, silly me for not noticing this the first time
code:
request.send(null);
request.onreadystatechange = processReadyStateChange(); // this still needs to be removed
The callback is being assigned
after the request is sent meaning that it doesn't exist to be called (
at least not the first time, subsequent requests would work because you are using the same xmlhttp object). Those two lines should be the other way around.