[AJAX] Réponse non reçue du serveur
Bonjour,
Je patauge depuis quelque temps avec un problème dans mon script Ajax. J'ai fait un code tout simple permettant d'exécuter un script PHP de manière asynchrone avec Ajax. Ce script PHP devrait tout simplement m'envoyer un petit mot ! Mais la valeur de responseText est toujours vide, responseXML toujours à 'null' et readyState toujours à 0....... Quelqu'un a une idée ? Je pense que c'est tout bête ! Mais là, je ne vois pas..... En mode synchrone, c'est Ok....
Voici mes codes :
La (ou plutôt les 2) fonction(s) Javascript
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
| function ajax(action)
{
// Création de l'objet de requête HTTP
var xhr;
if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
// Appel de la page traitant le formulaire
xhr.open('POST', "../web/"+action, true);
// Définition de la fonction qui sera appelée à chaque changement d'état de l'objet xhr.readyState
xhr.onreadystatechange = function() { alert_ajax(xhr); };
// Affichage de l'image indiquant qu'il faut patienter
document.getElementById("wait").className="waitActif";
// Envoi des données
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.send('donnee=valeéàéèàéur');
}
// Cette fonction est appelée à chaque changement d'état
function alert_ajax(xhr)
{
alert(xhr.readyState);
alert(xhr.status)
if (xhr.readyState == 4 && xhr.status==200)
{
alert(xhr.responseText);
}
} |
Le script PHP :
Code:
1 2 3 4 5 6 7
|
<?php
sleep(2);
echo 'test';
?> |
alert(xhr.readyState) me renvoi seulement 4 avec Chrome et seulement 1 avec IE. alert(xhr.status) me renvoie 0....
Une p'tite idée ??
Merci beaucoup d'avance ! :)