XMLHttpRequest readyState wechselt nicht

blueflash

Member of Honour
Hallo,

ich versuche mit folgendem Code, einen asynchronen Request abzusetzen:

Code:
        client = new XMLHttpRequest();
         client.open("GET", "test.xml",true);
        client.onreadystatechange = handler();
        client.send(null);

Nur wechselt der Ready State nur bis zu 1. Obwohl der Server brav antwortet.
Zumindest mit Firefox 2.0.12 kommt das Request also nicht im JavaScript an.
Woran könnte das liegen?
 

LX

Member of Honour
Sieht in diesem Schnipsel eigentlich alles gut aus. Ich definiere den onreadystatechange-Eventhandler für gewöhnlich schon vor dem open()-Aufruf, denke aber nicht, dass die Reihenfolge hier eine große Rolle spielt.

Ansonsten poste doch mal das gesamte Script, also auch die handler()-Funktion etc. Wüsste sonst spontan auch nicht, wo der Fehler liegen könnte.
 

blueflash

Member of Honour
Code:
var pause=false;
var nextChangeObj;
var client;

function handler() {
	alert(client.readyState);
/*	if(client.readyState == 4) 
		if(client.status == 200 && client.responseXML.getElementById('next'))	{
				// success!
				nextChangeObj.childNodes[1].src = client.responseXML.getElementById('next').data;
				pause = false;
			} else {
				// fetched the wrong page or network error...
				nextChangeObj.childNodes[1].src = "error.jpg";
				pause=false;
			}*/
}

function reloadImg(img) {
	pause = true;
	nextChangeObj = img;
	client = new XMLHttpRequest();
	//client.onreadystatechange = handler();
	client.open("GET", "test.xml",true);	
	client.onreadystatechange = handler();
	client.send(null);
}

function init() {
	reloadImg(document.getElementById("left"));
	window.setTimeout(move,10,document.getElementById("right"),1000);	
	window.setTimeout(move,10,document.getElementById("left"),0);	
	window.setTimeout(move,10,document.getElementById("center"),500);	
};

Das ist alles, was im Moment passiert.
 

blueflash

Member of Honour
Oh Mann, schwach typisierte Sprachen sind echt ein Murks!

Folgendermaßen geht es:

Code:
client.onreadystatechange = handler;
 
Oben