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 :

xhr.readystate = undefined


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut xhr.readystate = undefined
    Bonjour,

    je suis en train de développer un gadget vista et j'utilise un web service afin de récupérer des infos XML quand je lance une fonction nommée "go".
    Mais je ne sais pas pourquoi la propriété readystate de mon XMLHttpRequest est à undefined et status semble me renvoyer 0

    Voici un bout du code :

    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
    function getXhr() {
     
    	var xhr = null;
     
     
    	if (window.XMLHttpRequest){
    		xhr = new XMLHttpRequest();
    	}
    	else if(window.ActiveXObject){
    		try {
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e) {
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else { //pas de support
    		alert("Pas de support pour XMLHttpRequest");
    	}
    	return xhr;
    }
     
    function go(){
     
    	var xhr = getXhr();
    	xhr.onreadystatechange = function(){
    		if(xhr.readystate == 4 && xhr.status == 200){
                             //ce que je dois faire quand c OK (ici un test d'affichage en attendant)
    			document.getElementById('plop').style.display = 'block';
    		}
    	};
                //le web service que j'appelle 
    	xhr.open("GET", "http://localhost/WebServiceHTTP/Service1.asmx/addInteger?a=10&b=8", true);
    	xhr.send(null);
    }
    Pour l'instant je ne traite pas l'information renvoyée pas le web service ( résultat d'une addition).

    Si quelqu'un pouvait m'aider à résoudre mon probleme.
    merci

    Phydias.

  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,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	xhr.onreadystatechange = function(){
    		if(xhr.readystate == 4 && xhr.status == 200){
                             //ce que je dois faire quand c OK (ici un test d'affichage en attendant)
    			document.getElementById('plop').style.display = 'block';
    		}
    	};
    il faut déclarer "xhr" en variable globale, sinon il est inconnu à l'exécution de la function ...

    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    Bonjour E.Bzz

    tout d'abord merci de m'avoir répondu

    J'ai changé le code comme ceci mais cela ne fonctionne toujours pas :'(

    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
     
     
    var xhr = null;
     
    function getXhr() {
     
    	if (window.XMLHttpRequest){
    		xhr = new XMLHttpRequest();
    	}
    	else if(window.ActiveXObject){
    		try {
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e) {
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else { //pas de support
    		alert("Pas de support pour XMLHttpRequest");
    	}
    	return xhr;
    }
     
    function go(){
     
    	xhr = getXhr();
    	xhr.onreadystatechange = function(){
    		if(xhr.readystate == 4 && xhr.status == 200){
                             //ce que je dois faire quand c OK (ici un test d'affichage en attendant)
    			document.getElementById('plop').style.display = 'block';
    		}
    	};
                //le web service que j'appelle 
    	xhr.open("GET", "http://localhost/WebServiceHTTP/Service1.asmx/addInteger?a=10&b=8", true);
    	xhr.send(null);
    }

  4. #4
    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
    Citation Envoyé par phydias
    J'ai changé le code comme ceci mais cela ne fonctionne toujours pas :'(


    'plop' est bien un ID unique ?
    Tu testes avec IE7 ?

  5. #5
    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
    Citation Envoyé par E.Bzz


    'plop' est bien un ID unique ?
    Tu testes avec IE7 ?
    Heu .. non : rien à voir avec le undefined.

    Par contre, il faudrait enlever les "retunr xhr;" et "xhr = getXhr();".

  6. #6
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Par défaut
    false à la place de true(pour sync) ? donne la valeur de ton ready state ca sera plus simple de voir ou vient le pb

  7. #7
    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
    Citation Envoyé par nathdiscaz
    false à la place de true(pour sync) ? donne la valeur de ton ready state ca sera plus simple de voir ou vient le pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.readystate = undefined
    c'est le titre.
    Et en synchrone, le onreadystatechange ne fonctionne pas ...

Discussions similaires

  1. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  2. [AJAX] xhr.readyState && xhr.status
    Par Neewd dans le forum AJAX
    Réponses: 2
    Dernier message: 27/01/2012, 15h29
  3. readyState sur undefined et affichage 4 fois
    Par Akazed dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/09/2011, 09h06
  4. xhr.readyState < 4 avec jQuery
    Par okoweb dans le forum jQuery
    Réponses: 5
    Dernier message: 26/08/2011, 13h49
  5. readyState == undefined
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2007, 17h17

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