XMLHTTPRequest et fiefox

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Yves_B

XMLHTTPRequest et fiefox

Message 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
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: XMLHTTPRequest et fiefox

Message 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
Invité

Message 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
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité