COMMUNICATION AVEC LE SERVEUR EN MODE ASYNCHRONE(XMLHTTPREQUEST)

koriteki Messages postés 20 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 7 mai 2014 - 6 juin 2008 à 09:55
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 7 juin 2008 à 07:46
Bonjour, j'ais un problème assez simple, dans les lignes ci-dessous CQD ou SOS ne s'affiche pas...

(ajax-get.html)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link type="text/css" rel="stylesheet" href="http://127.0.0.1/MiseEnPage.css"/>
        <script language="JavaScript">
            function submitForm()
            {
                compt=1;
                while(compt<5)
                {
                    if (compt==4)
                    {
                    break;
                    }
                    //document.write("The cartoon number "+compt+" is : "+dojo[compt]+"
");
                    document.write("come quick, distress
");
                    compt++;
                }
                var req = null;
                var dojo=new Array(4);
                document.write("");
                document.write("Started...
");
                if (navigator.appName=="Netscape")  // ( window . XMLHttpRequest )  // Firefox
                {
                    document.write("Netscape
");
                    req = new XMLHttpRequest();
                }
                else
                if (navigator.appName=="Microsoft Internet Explorer") //  ( window . ActiveXObject ) // Internet Explorer
                {
                    document.write("Microsoft Internet Explorer
");
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                }
                // Le problème commence la ligne ci-dessous
                /*if (navigator.appName=="Netscape")  // ( window . XMLHttpRequest )  // Firefox
                {
                    req = new XMLHttpRequest();
                    document.write("Netscape
");
                }
                else
                if (navigator.appName=="Microsoft Internet Explorer") //  ( window . ActiveXObject ) // Internet Explorer
                {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                    document.write("Microsoft Internet Explorer
");
                    else
                    { // XMLHttpRequest non supporté par le navigateur
                        document.write( "Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
                    }
                }
                //req.onreadystatechange = function()
                req.open("GET", "data.xml", true); /*le premier paramètre est la méthode, le deuxième est le nom du dossier dont on va retourner le résultat et le troisième sert a dire que c'est en mode asynchrone*/
                //req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                //{
                    if(req.readyState == 4)
                    {
                        if(req.status == 200)
                        {
                            document.write("CQD
");
                        }
                        else
                        {
                            document.write("SOS
");
                        }
                    }
                //}
                ;
                // la zone du problème se termine la ligne ci-dessus*/
                req.send(null);
            }
        </script>
    </head>
   
        <script language="JavaScript">
                compt=1;
                dojo=new Array(4);
                dojo[1]="Save";
                dojo[2]=" our ";
                dojo[3]="souls";
                while(compt<5)
                {
                    if (compt==4)
                    {
                    break;
                    }
                    document.write(dojo[compt]+"
");
                    compt++;
                }
        </script>
        <FORM name="ajax-get.html" method="POST" action="">
           
           
           

        </FORM>
   
</html>

sachant qu'une fois le prob règlé, je pourrais obtenir l'affichage des données sotké dans data.xml
(data.xml)

<?xml version="1.0" encoding="utf-8"?>
<dvd>   
   
        <title>Mononoke Hime</title>
        <director>Hayao Miyazaki</director>
        14,99

   
   
        <title>Tonari no Totoro</title>
        <director>Hayao Miyazaki</director>
        19,99

   
   
        <title>Blood, The Last Vampire</title>
        <director>Hiroyuki Kitakubo</director>
        11,99

   
</dvd>

11 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 10:40
Bonjour,

    rien contrôlé ni testé...

    simplement, dans submitForm, on trouve des document.write
        ça efface la page, toute la page, y compris le javascript.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
koriteki Messages postés 20 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 7 mai 2014
6 juin 2008 à 10:45
quand je clique sur submit, j'ais quand même:

come quick, distress
come quick, distress
come quick, distress
"l'image .gif"
started...
Netscape
               
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 10:55
ben... oui....   ce sont les document.write.
regarde ce qu'il reste dans ta page ( à part come quick, distress ... )
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
koriteki Messages postés 20 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 7 mai 2014
6 juin 2008 à 11:27
J'ais remplacé les document wirte par des Div... dont un exemple
"

";

et cela change rien au prob...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 11:45
??   tu as sucré tous les document.write ?

ah... et je viens de voir.. du xml ?
    ton souci est avec IE ?
        oui : il faut utiliser new ActiveXObject("microsoft.XMLDOM");
        non : on peut voir où tu en est de ta source ?

et aussi :
FireFox
, regarder la "console d'erreurs"
Outils / Console d'erreurs
et mieux : télécharger mon Site] [M'écrire] [Laisser une adresse Mail, en évitant les spams]
0
koriteki Messages postés 20 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 7 mai 2014
6 juin 2008 à 11:53
J'en suis là:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link type="text/css" rel="stylesheet" href="http://127.0.0.1/MiseEnPage.css"/>
        <script language="JavaScript">
            var req = null;
            function submitForm()
            {
                compt=1;
                while(compt<5)
                {
                    if (compt==4)
                    {
                    break;
                    }
                    //document.write("The cartoon number "+compt+" is : "+dojo[compt]+"
");
                    "
come quick, distress

";
                    compt++;
                }
                var dojo=new Array(4);
                "

";
                "
Started...

");
                if (navigator.appName=="Netscape")  // ( window . XMLHttpRequest )  // Firefox
                {
                    "
Netscape

";
                    req = new XMLHttpRequest();
                }
                else
                if (navigator.appName=="Microsoft Internet Explorer") //  ( window . ActiveXObject ) // Internet Explorer
                {
                    "
Microsoft Internet Explorer

";
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                }
                {
                    "

";
                    req.open("GET", "data.xml", true);
                    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                    if(req.readyState == 4)
                    {
                        "

";
                    }
                    else
                    {
                        "

";
                    }
                }
                // Le problème commence la ligne ci-dessous
                /*if (navigator.appName=="Netscape")  // ( window . XMLHttpRequest )  // Firefox
                {
                    req = new XMLHttpRequest();
                    document.write("Netscape
");
                }
                else
                if (navigator.appName=="Microsoft Internet Explorer") //  ( window . ActiveXObject ) // Internet Explorer
                {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                    document.write("Microsoft Internet Explorer
");
                    else
                    { // XMLHttpRequest non supporté par le navigateur
                        document.write( "Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
                    }
                }
               
                req.open("GET", "data.xml", true); /*le premier paramètre est la méthode, le deuxième est le nom du dossier dont on va retourner le résultat et le troisième sert a dire que c'est en mode asynchrone*/
                //req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                // la zone du problème se termine la ligne ci-dessus*/
            };
            req.send(null);
        </script>
        <script language="JavaScript">
            function showing()
            {
                while(compt<5)
                {
                    if (compt==4)
                    {
                    break;
                    }
                    //document.write("The cartoon number "+compt+" is : "+dojo[compt]+"
");
                    "
Save Our Souls

";
                    compt++;
                }
                var dojo=new Array(4);
                    if(req.readyState == 4)
                    {
                        if(req.status == 200)
                        {
                            "
CQD

";
                        }
                        else
                        {
                            "
SOS

";
                        }
                    }
                }
                ;
        </script>
    </head>
   
        <script language="JavaScript">
                compt=1;
                dojo=new Array(4);
                dojo[1]="Save";
                dojo[2]=" our ";
                dojo[3]="souls";
                while(compt<5)
                {
                    if (compt==4)
                    {
                    break;
                    }
                    document.write(dojo[compt]+"
");
                    compt++;
                }
        </script>
        <FORM name="ajax-get.html" method="POST" action="">
           
           
           

        </FORM>
   
</html>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 12:00
...
    if(req.status == 200)
                        {
                            "
CQD

";
                        }
                        else

    ça donne des erreurs ça !   ce n'est pas une instruction javascript.
    et regarde le tableau mis dans ma réponse précédente.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 12:02
et tu n'as peut-être pas lu ?
    je me cite :
            ah... et je viens de voir.. du xml ?
                ton souci est avec IE ?
                    oui : il faut utiliser new ActiveXObject("microsoft.XMLDOM");
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 12:09
et.... il te reste des document.write... non ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
koriteki Messages postés 20 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 7 mai 2014
6 juin 2008 à 17:03
Désolé pour le silence... je n'étais pas devant mon ordi.

"
CQD

";
certes, ce n'est pas du javascriopt, mais, les doubles quotes font que cela passe

Les document.write qui reste sont dans des zones de commentaires, donc sans incidence.
J'utilise Firefox.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
7 juin 2008 à 07:46
>> ce n'est pas du javascript, mais, les doubles quotes font que cela passe
    pas du tout !
    ça provoque des erreurs de syntaxe !

>>Les document.write qui reste sont dans des zones de commentaires,
    non plus !
                    document.write("Netscape
");
                    document.write("Microsoft Internet Explorer
");
                    document.write( "Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );

>>J'utilise Firefox.
    c'est  bien, mais lis le tableau :
•————————•——————————————————————————————————————————————————————————•
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | et mieux, : télécharger FireBug |
•————————•——————————————————————————————————————————————————————————•

                 enfi... ce que j'en dis moi...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Rejoignez-nous