Page 1 sur 1

XMLHTTPRequest et fiefox

Publié : 19 juin 2006, 18:32
par Yves_B
Bonjour,

Je vous soumet le script suivant
ce script envoie un login et un mot de passe a dza_1.cgi pour verif et qui renvoi une message dans une fenetre alert.
sous IE pas PB le message apparait comme voulu
mais sous Firefox la fenetre alert apparait mais vide.
je ne comprens pas

avez voous une idee ??
avec mes remerciements
A+

var s1=Login;
var s2=Mot_Passe;
var xhr_object = null;

if(window.XMLHttpRequest)
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject)
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}

var data = "Login="+s1+"&Mot_Passe="+s2;
var method = "POST";
var filename = "dza_1.cgi";

xhr_object.open(method,filename, true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText.split(":");
// var tmp = xhr_object.responseText;
//if (tmp[0] == 1){
alert(tmp);
//document.vrifdate.Login.focus();
//return false
//}
}
}

if(method == "POST")
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr_object.send(data);

}

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4

Re: XMLHTTPRequest et fiefox

Publié : 19 juin 2006, 18:39
par calimo
Essaye de mettre quelques alert(...) à divers endroits de ton code pour essayer de voir dans quel boucle le navigateur n'entre pas :wink:
Parce que là, il n'y a rien qui saute aux yeux...

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firegecko Firefox/1.5.0.4

Publié : 20 juin 2006, 11:07
par Invité
Bonjour,
j'ai essaye de mettre des alerts un peu partout sans resultat
ici je mets l'appel de la fonction requete
ce qui est etonnant c'est lors de l'appel,
la fenetre alert (2) apparait avant l'alert (tmp[1]) qui renvoi le message
il me semble que l'alert (2) ne devrait apparaitre que si retour =0

avec mes remerciements
A+

extrait du script

Code : Tout sélectionner

	var retour = 0;
        requete(document.vrifdate.Login.value,document.vrifdate.Mot_Passe.value,retour);
	if (retour == 1 ){
	alert("je suis ici");
	}
	else{
(2)	[b]alert ("je ne suis pas passe");[/b]
	}
}
//
//

function requete(Login,Mot_Passe,retour)
{
var s1 = Login;
var s2 = Mot_Passe;

var xhr_object = null;
	
   if(window.XMLHttpRequest) 
      xhr_object = new XMLHttpRequest();
   else if(window.ActiveXObject) 
      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
   else { // XMLHttpRequest non supporté par le navigateur
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      return;
   }

var data = "Login="+s1+"&Mot_Passe="+s2;
var method = "POST";
var filename = "dza_1.cgi";

xhr_object.open(method,filename, true);

xhr_object.onreadystatechange = function() {
   if(xhr_object.readyState == 4) {
      var tmp = xhr_object.responseText.split(":");
    if (tmp[0] == 1){
        retour= 1;
       [b] alert(tmp[1]);[/b]
    return retour;
    } 
   }
}

if(method == "POST")
   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr_object.send(data);

}
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4

Publié : 20 juin 2006, 19:35
par Benoit
C'est tout à fait normal, ton alerte (2) est faite au chargement de la page, alors que ton alerte (1) est faite au moment de la réception de la réponse à ta requête secondaire (quand l'objet que tu as créé change d'état).

En utilisant XMLHttpRequest, tu passes d'une programmation linéaire à une programmations évènementielle, il va falloir t'y habituer :)

Ce que tu devrais probablement faire :
Créer une fonction avec toutes les instructions à exécuter lorsque tu as reçu une réponse à ta requête, et associer cette fonction à la propriété onreadystatechange de ta requête.