Ich bin kein Ajax-Meister, aber ich glaube, dass dies hier ein Problem sein kann:
if ( request.readyState == 4 && request.status == 200 ) {
   // ok
} else {
  // fehler
}
Grund: Die readyStates durchlaufen die Werte von 0-4, wobei 2="has been sent", 3="in progress" und 4="complete" bedeutet. Mit readyState 2 müsste dein EventHandler eigentlich immer aufgerufen werden. Und dann läufst Du in den Fehlerfall.
Besser sollte dies sein, damit im Fall von readyState != 4 gar nichts geschieht.
if ( request.readyState == 4 ) {
   if ( request.status == 200 ) {
      // ok
   } else {
     // fehler
   }
}
Rolf
 nicht angemeldet
 nicht angemeldet Rolf b
 Rolf b Auge
 Auge Der Martin
 Der Martin Gunnar Bittersmann
 Gunnar Bittersmann