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 :

Problème avec XMLhttp Request


Sujet :

JavaScript

Vue hybride

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 234
    Par défaut Problème avec XMLhttp Request
    Je ne sais pas si je suis dans le meilleur forum mais bon je pose quand meme ma question.
    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
     
    function hapinessIsFree(xmlhttp)
    {
        alert(xmlhttp.readyState);
        if (xmlhttp.readyState == 4) /* 4 : état "complete" */
            if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
                alert(xmlhttp.responseText);
    }           
     
     
    function Init()
    {    
        var xmlhttp=Init_XHR();
     
        if(xmlhttp==false)
        {
            alert('pas bon');
            return;
        }
        xmlhttp.onreadystatechange=hapinessIsFree(xmlhttp);
     
        xmlhttp.open('GET', '../Test/Test.html?Message=Salut!!!!!!',false);
     
        xmlhttp.send(null);
        alert(xmlhttp.readyState);
    }
    Voila l'etat passe bien à 4 (d'après l'affichage) mais a chaque etape la fonction haponessisfree devrait être appelé et je ne comprend pas pourquoi ! Merci d'avance pour vos réponse

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    salut,
    ton affectation equivaut a un appel de la méthode, tu ne lui affecte pas une reference donc.

    essayes plutot un truc comme ca :
    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
     
    function hapinessIsFree()
    {
        alert(this.readyState);
        if (this.readyState == 4) /* 4 : état "complete" */
            if (this.status == 200) /* 200 : code HTTP pour OK */
                alert(this.responseText);
    }           
     
     
    function Init()
    {    
        var xmlhttp=Init_XHR();
     
        if(xmlhttp==false)
        {
            alert('pas bon');
            return;
        }
        xmlhttp.onreadystatechange=hapinessIsFree;
     
        xmlhttp.open('GET', '../Test/Test.html?Message=Salut!!!!!!',false);
     
        xmlhttp.send(null);
        alert(xmlhttp.readyState);
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 234
    Par défaut
    Je te remercie beaucoup pour ton coup de main, mais je n'arrive pas à faire fonctionner ta méthode. En effet soit j'affecte "onreadystate" avec les parenthèses auquel cas il ne trouve pas this.state (il le dit non definit). Soit si j'affecte sans parenthès il ne se passe rien et aucune erreur javascript.

    Je ne sais pas si je l'ai dit dans mon premier message mais ca me semble important : la fonction hapinessIsFree dans le code que j'ai donné s'éxécuté mais une seule fois.

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    ok, autre solution alors :
    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
     
    function hapinessIsFree()
    {
        alert(xmlhttp.readyState);
        if (xmlhttp.readyState == 4) /* 4 : état "complete" */
            if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
                alert(xmlhttp.responseText);
    }           
    var xmlhttp;
     
    function Init()
    {    
        xmlhttp=Init_XHR();
     
        if(xmlhttp==false)
        {
            alert('pas bon');
            return;
        }
        xmlhttp.onreadystatechange=hapinessIsFree;
     
        xmlhttp.open('GET', '../Test/Test.html?Message=Salut!!!!!!',false);
     
        xmlhttp.send(null);
        alert(xmlhttp.readyState);
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 234
    Par défaut
    Ca ne marche toujours pas je me demande si je ne pourrais pas avoir fais une erreur dans ma fonction init_XHR
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    function Init_XHR()
    {
        var bow;
         if (window.XMLHttpRequest)
              bow='other';
         else if (window.ActiveXObject)
                bow='IE';
              else if (window.createRequest) 
                     bow='iceBrowser';
              else
                 {
                      alert('Votre navigateur ne peut effectuer cette requete. Si vous utilisez Safari, IE, Mozilla, Firefox, Netscape ou Opera veuillez les mettre a jour.');
                    return false;
                 }
           //declaration de l'objet    
        var xmlhttp = false;
        //Deux 'modes' de creation pour IE si l'un ne marche pas on essaie l'autre
        if(bow=='IE')
        {
            try
            {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
             catch (e)
             {
                try
                {
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (E)
                {
                    xmlhttp = false;
                }
            }
        }
        //Cette méthode est utilisé par tous autres navigateurs.
        else if (bow='other')
                {
                    try
                    {
                        xmlhttp = new XMLHttpRequest();
                    }
                    catch (Err)
                    {
                        xmlhttp = false;
                    }
                } 
                else
                {
                    try 
                    {
                        xmlhttp = window.createRequest();
                    } 
                    catch (e) 
                    {
                        xmlhttp=false;
                    }
                }
        return xmlhttp;
    }
    que j'apelle dans ma page avec la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript" src="../JavaScript/XHR.js"></script>
    J'ai bien vérifié les chemins. Si tu trouves je te divinifies mdr
    Je te remercie encore de ton aide en tout cas

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    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
     
     
     
    function Init_XHR(){
        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) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        else { // XMLHttpRequest non supporté par le navigateur 
           alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
           xhr = false; 
        } 
        return xhr;
    }
     
    function hapinessIsFree()
    {
        alert(xmlhttp.readyState);
        if (xmlhttp.readyState == 4) /* 4 : état "complete" */
            if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
                alert(xmlhttp.responseText);
    }           
    var xmlhttp;
     
    function Init()
    {    
        xmlhttp=Init_XHR();
     
        if(xmlhttp==false)
        {
            alert('pas bon');
            return;
        }
        xmlhttp.onreadystatechange=hapinessIsFree;
     
        xmlhttp.open('GET', '../Test/Test.html?Message=Salut!!!!!!',false);
     
        xmlhttp.send(null);
        alert(xmlhttp.readyState);
    }
    sinon ca peut aussi venir de ta page test

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

Discussions similaires

  1. Problème avec scope "request"
    Par lion13 dans le forum JSF
    Réponses: 4
    Dernier message: 27/10/2008, 11h53
  2. Réponses: 6
    Dernier message: 22/06/2007, 15h34
  3. Problème avec xmlHttp object
    Par warmup27 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/04/2007, 19h16
  4. [Struts] - Problème avec un request.setAttribute
    Par renotm dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/02/2006, 10h00

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