[AJAX] Le code s'arrête à xhr_object.readyState = 3
Bonjour,
J'ai un problème pour afficher mes données avec AJAX : j'ai l'impression que mon traitement se bloque quand xhr_object.readyState = 3.
Chose étrange mon traitement fonctionne bien sur FIREFOX V2,
mais pas sur Chrome ni sur IE.
Ce problème vous parle t il ?
Voici mon code :
Fichier HTML :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<html>
<head>
<script type="text/javascript" src="code_js.js"></script>
</head>
<BODY onLoad="Chargement('pseudobox3');" >
<div class=text id="pseudobox3"></div>
</body>
</html> |
Fichier JS :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
function Chargement(f) {
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
alert(f);
xhr_object.open("POST", "load-data.php", true);
xhr_object.onreadystatechange = function anonymous() {
if(xhr_object.readyState == 4)
{
eval(xhr_object.responseText);
alert(xhr_object.responseText);
writediv(xhr_object.responseText,f);
}
else
{alert(xhr_object.readyState); }
}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "form="+f.name+"&select=list1";
xhr_object.send(data);
} |
finalement ça envoie 4 ...
Code:
>>>>var data = "form="+f.name+"&select=list1";
Dans ce cas, les valeurs envoyées ne correspondent pas au fichier html présenté,
et ne sont pas exploitées par le fichier PHP.
Sinon,
il semblerait que je me sois trompé, le alert(xhr_object.readyState); me renvoie "4",
mais n'affiche pas le contenu du résultat de ma requête sur Chrome, IE et la dernière version de FireFox.
J'AIC ENFIN TROUVééééééééééééé !!!!
j'avais un foutu EVAL que j'avais oublié de retirer !!!!!
Code:
eval(xhr_object.responseText);
Merci pour votre aide et vos réponses.