Ajax probleme onreadystatechange

Fermé
choco - 19 févr. 2011 à 19:59
Bonjour,

je commence à utiliser ajax, mais voilà cela ne fonctionne pas.

voila un exemple dans le cas ou je l'utilise:


function sendRequest(method, actionURL, vars, async)
{
var xmlHttp = getXMLHttpRequest();
xmlHttp.onreadystatechange =
function ()
{
if(xmlHttp.readyState == 4)
{ // the request is completed

if(xmlHttp.status == 200 || xmlHttp.status == 0) {
updateViewWithResponse(xmlHttp);
}
else if(xmlHttp.status == 404) {
alert('HTTP error 404: action not found.');
}
else {
alert('HTTP error ' + xmlHttp.status + ' while submitting the command.');
}
}
};

if(method=="GET")
{
actionURL+= "?"+vars+"&ms=" + new Date().getTime(); vars = null;

}
else
{
vars+= "&ms=" + new Date().getTime();
}
//alert(method+":"+actionURL+"\n"+vars);
xmlHttp.open(method, actionURL, async);
xmlHttp.setRequestHeader("Cache-Control","no-cache");
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(vars);
}

le soucis ne semble pas venir du code car j'ai pris d'autres exemples sur le net

et dont le comportement anormal ne diffèrent pas du mien

supposons que updateViewWithResponse(xmlHttp) fasse alert(xmlHttp.textResponse)

le resultat est toujours vide (chaine vide) s'il atteint l'etat 4
car le serveur n'a pas fini de traiter la requete.
sinon lorsque la requete est termine xmlHttp.onreadystatechange reste bloquée à l'etat 2

alors que Si je rajoute les conditions suivantes:
function ()
{
if (xmlHttp.readyState==1){alert("toto");}
if (xmlHttp.readyState==2){alert("toto");}
if (xmlHttp.readyState==3){alert("toto");}
if(xmlHttp.readyState == 4) ...

tout fonctionne normalement.

ce serait fustrant d'avoir toujours recours à ce principe non

je developpe en local, je ne sais pas si c'est cela qui fait que tout ne fonctionne pas.

un grand merci à ceux qui voudront bien m'aider.