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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
alert(xhr.readyState) me renvoi seulement 4 avec Chrome et seulement 1 avec IE. alert(xhr.status) me renvoie 0....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php sleep(2); echo 'test'; ?>
Une p'tite idée ??
Merci beaucoup d'avance !![]()
Partager