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

AJAX Discussion :

[AJAX] xhr.status vaut 0 et pas 200


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 174
    Par défaut [AJAX] xhr.status vaut 0 et pas 200
    Bonjour,
    j'ai un problème avec mon code (très simplifié^^):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    var xhr = new XMLHttpRequest();
     
    xhr.onreadystatechange = function(){
        if ( xhr.readyState == 4 ) alert(xhr.status);
    } 
     
    		xhr.open('GET', 'http://www.monsite.net/prog.php', true);
    		xhr.send(null);
    la fonction alert() m'affiche 0 alors qu'elle devrait affiché 200. la requête est pourtant bien effectué et j'ai bien une réponse du serveur (je le sais par wireshark).

    Pouvez vous m'aider à trouver d'où est ce que le problème vient?
    merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par sebatlante Voir le message
    la fonction alert() m'affiche 0 alors qu'elle devrait affiché 200.
    ben non : si elle t'affiche 0 c'est que, à ce moment là, le xhr.status vaut 0
    Comme le readyState, le statut évolue en fonction du déroulement de la requête.
    Le onreadystatechange se déclenche, comme son nom l'indique, à chaque fois que le readyState change de valeur. Mais ce n'est pas parce qu'il vient de passer à 4 que le status passera forcément à 200 simultanément.

    Aussi, dans les différents scripts du forum, tu trouveras le test complet, permettant de savoir que la requête est complétement terminée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( xhr.readyState == 4  && xhr.status == 200)
    De plus l'utilisation du status dans d'autres cas (par exemple pour afficher un message sur l'état d'avancement jusqu'à la fin de la requête) pose problème dans certains (tous ?) navigateurs. Aussi ne le fait-on pas

    A+

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/07/2009, 18h12
  2. [AJAX] xhr.status = 0, Mais pas toujours :~
    Par Terni dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 29/10/2008, 15h12
  3. [AJAX] Ajax xhr.status renvoie 0
    Par cell dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/10/2008, 11h18
  4. [AJAX] xhr.status = 0
    Par Cartman.inc dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/04/2008, 11h23
  5. Réponses: 2
    Dernier message: 06/07/2007, 13h27

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