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] readyState jamais égale à 4


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut [AJAX] readyState jamais égale à 4
    Salut,
    Je travaille sur une solution basé sur wamp server et mon script ajax déconne à mort.
    Enfin tout fonctionne bien jusqu'a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (xhr.readyState == 4 && xhr.status == 200)
    J'ai fait des alert un peu partout pour voir ou sa s'arrétais. Et il passe bien 4 fois dans le callback mais ne rentre jamais dans le if. J'ai enlevé le test du status, pareil. Dans les logs d'apache il n'y a aucun soucis alors je ne comprend pas.

    Voici le code complet :
    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
    45
    46
    47
     
    function LoadXHR(){
        var xhr=null;
        if(window.XMLHttpRequest){ // Firefox et autres
            xhr = new XMLHttpRequest();
        }
        else if(window.ActiveXObject){ // Internet Explorer
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                try {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e1) {
                    xhr = null;
                }
            }
        }
        else { // XMLHttpRequest non support� par le navigateur
              alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        }
        return xhr;
    }
     
    function callBack( xhr ){
     
       if (xhr.readyState == 4 && xhr.status == 200)
        {
            eval(xhr.responseText); 
            alert(xhr.responseText);
        }
    }
     
    function sendValues(){
     
      var xhr = LoadXHR(); 
      var param = "?ASK=20";
      param += "&desTas=DeTrucs";
     
     
      xhr.onreadystatechange = function() { callBack(); };
      xhr.open("GET","/includes/Class/AnswerAjax.php"+param, true);
      xhr.send(null);
     
     
    }
    Si quelqu'un à une idèe un grand merci

    @+

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function callBack( xhr )
    Dans ta fonction, il y a un conflit entre le paramètre xhr (qui en plus n'existe pas dans l'appel) et la variable xhr de la fonction appelante. C'est probablement ce qui perturbe l'exécution.
    Tu devrais donc essayer :
    et du coup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.onreadystatechange = callBack;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut
    Yep, merci.

    En effet sa à bien l'air de venir de ça. En plus j'ai deux fonctions callback dans le même fichier et la variable xhr était nommé pareil. Je les ai donc renommé diférament. Et tout fonctionne bien

    Je pensais que la porté des variables déclarer dans une fonction ce limitait à celle ci même en javascript. C'est un peu abérant de déclarer une variables dans une portion de code autonome et qu'au final elle soit global????Nan???

    En tout cas merci beaucoup : Rapiditer + Réponse correct
    Merci Bovino
    @+

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Attention, une variable déclarée dans une fonction n'est pas globale ! En revanche, toute fonction appelée par une autre a accès au contexte de la fonction appelante, donc en particulier à ses variables.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Par défaut
    A ok je comprend mieux, mais ce n'est le cas qu'en javascript nan?? je n'ai jamais remarqué ca que ce soit en php c++ ou autre.
    En tout cas merci. Je met clique sur résolue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] readyState reste bloqué à 1
    Par Simon30 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 17/10/2008, 22h49
  2. [AJAX] readyState bloque à 1
    Par dubitoph dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/09/2008, 09h39
  3. [AJAX] readyState
    Par helpcomm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/12/2007, 08h00
  4. [AJAX] Méthode jamais appelée sous IE
    Par Mister Nono dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 29/09/2006, 15h19
  5. [AJAX] readyState passe de 1 à 4 : Probleme Connu ?
    Par raoulchatigre dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 29/08/2006, 12h39

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