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