IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

XMLHttpRequest avec firefox


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Etudiant
    Inscrit en
    Janvier 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 31
    Points : 19
    Points
    19
    Par défaut XMLHttpRequest avec firefox
    Salut j'ai un probléme avec firefox et les objets XMLHttpRequest. Avec IE 7, ça marche bien.
    Mais avec FF,j'obtient toujours XMLHttpRequest.status=0 et malgrés ça la requête est exécuté.Voici mon code javascript que j'ai mis en place :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
    <html>
    <head>
    <title>Test XMLxhrRequest </title>
     
    </head>
    <body>
    	<script type="text/javascript">
     
    		function getxhrRequest(){
    				if (window.XMLHttpRequest) { 
    					xhrRequest = new XMLHttpRequest();
    				}
    				else if (window.ActiveXObject) { 
    					xhrRequest = new ActiveXObject("Microsoft.XMLHTTP");
    				}
    				return xhrRequest;
    		}
     
    		xhrRequest=getxhrRequest();
     
    		alert(xhrRequest);
    		xhrRequest.onreadystatechange = function(){
     
     
    			if(xhrRequest.readyState == 4){
    				if(xhrRequest.status == 200){
     
    							jsonText = xhrRequest.responseText;
    							//Traitement de la réponse
    				}						
    			}                    
    		}
     
    			xhrRequest.open('GET',url,true);
    			xhrRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');            
    			xhrRequest.send(null);   
     
     
    	</script>
     
    </body>
    </html>

    Avec FireBug j'ai constaté que ça coince au niveau de la ligne Quelqu'un aura une idée sur l'origine du problème ???
    merci d'avance.

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    La propriété status peut en effet contenir la valeur 0 au lieu de la valeur 200. Il est donc indispensable de toujours prendre ce cas en compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhrRequest.status==200||xhrRequest.status==0){

  3. #3
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Bonjour,
    Je ne dirais pas qu'il faut toujours le prendre en compte, car il peut aussi souvent signifier que la requête n'aboutiras pas, ce qui n'est pas souhaitable lorsqu'on est en production.
    Par contre, ça peut être nécessaire pour la mise au point d'un script : on retrouve souvent le 'status' à 0 lorsqu'on fait une requête en local(dans une page html sans serveur par exemple).

    Par contre, s'agît-il d'une requête avec la méthode 'POST' ou la méthode 'GET' :
    Voici l'extrait du code qui me fait poser la question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xhrRequest.open('GET',url,true);
    xhrRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

  4. #4
    Membre à l'essai
    Profil pro
    Etudiant
    Inscrit en
    Janvier 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    C'est une méthode GEt et puis justement je fais une requête en local. ça change quoi ?

  5. #5
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Si tu fais une requete en local, le status '0' est "normal", il faut donc le tester aussi comme le suggère Eric2a. Il n'est cependant pas nécessaire de le laissé lorsque la requête n'est ensuite plus faite en local(lors du déploiement sur un serveur).

    Pour ma question sur la méthode utilisée pour la requête, c'est parce que cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhrRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    doit normalement être utilisé pour une requête 'POST', mais pas pour une requête 'GET'.

  6. #6
    Membre à l'essai
    Profil pro
    Etudiant
    Inscrit en
    Janvier 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    J'ai essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(xhrRequest.status==200||xhrRequest.status==0){
    mais ça fonctionnait pas...
    Et puis si jamais il y a un serveur..mais sur IE ça fonctionne bien mais pas sur firefox...

Discussions similaires

  1. [AJAX] xmlhttprequest et firefox
    Par athome dans le forum AJAX
    Réponses: 5
    Dernier message: 27/09/2010, 10h10
  2. [AJAX] avec XMLHttpRequest et firefox
    Par riadhhwajdii dans le forum AJAX
    Réponses: 2
    Dernier message: 27/06/2010, 20h02
  3. Ecouter la radio avec Firefox
    Par Cian dans le forum Applications et environnements graphiques
    Réponses: 20
    Dernier message: 14/07/2005, 19h19
  4. Problème Site Web avec Firefox
    Par bodybug dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/01/2005, 23h48
  5. balise <img> dans un tableau avec firefox
    Par yannock dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/10/2004, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo