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 :

[AJAX] ajax et internet explorer 7


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut [AJAX] ajax et internet explorer 7
    Bonjour a tous un plaisir de vous retrouver

    voici ce qui me tracasse

    j'essaie d'utiliser AJAX en envoyant des paramètres vers le serveur avec la méthode POST comme ceci

    fichier index4.html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

    <head>
    <title>Exemple 4</title>
    </head>
    <body>

    <script type="text/javascript" src="ajax4.js"></script>

    <p>
    <a href="javascript:ajax();">Vous avez le droit de me cliquer !</a>
    </p>

    </body>
    </html>

    fichier ajax4.js:

    function ajax()
    {
    var xhr=null;

    if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { alert_ajax(xhr); };

    var params="id=ok";
    //on appelle le fichier reponse.txt
    xhr.open("POST", "reponse.php" , true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("Content-length", params.length);
    xhr.setRequestHeader("Connection", "close");
    xhr.send(params);
    }

    function alert_ajax(xhr)
    {
    var docXML= xhr.responseXML;
    var items = docXML.getElementsByTagName("donnee")
    //on fait juste une boucle sur chaque element "donnee" trouvé
    for (i=0;i<items.length;i++)
    {
    if((items.item(i).firstChild.data)==="ok"){
    alert(""+(items.item(i).firstChild.data));
    alert("c'est ok");

    }else{
    alert(""+(items.item(i).firstChild.data));
    alert("c'est pas bon");

    };
    }
    }
    le fichier reponse.php

    <?php
    header('Content-Type: text/xml');
    echo "<?xml version=\"1.0\"?>\n";
    echo "<exemple>\n";
    $id=$_POST["id"];

    //j'esecute une commande quelqunoque verifie si vlc est present dans le sprocessus

    $commande2="ps -eaf | grep ".$id." |awk '$8==\"vlc\"{print $2}'";
    $eee=exec($commande2);


    if($eee=="")
    {
    //doit afficher lavaleur obtenu par POST ici : ok
    echo "<donnee>".$id."</donnee>\n";
    }else{

    echo "<donnee>no</donnee>\n";
    }
    echo "</exemple>\n";

    ?>

    mais le problème c'est que sa marche avec mozilla firefox (iceweasel)

    mais quand j'essaie avec ie7 rien ne marche alors que la méthode get fonctionnait

    merci d'avance pour vos réponses c'est hyper important

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Cela fonctionne chez moi avec FF3 ou IE7

    Avec un test sur xhr, c'est plus propre:
    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
    function alert_ajax(xhr) {
        if(xhr.readyState == 4 && xhr.status == 200){
            var docXML= xhr.responseXML;
            var items = docXML.getElementsByTagName("donnee")
            //on fait juste une boucle sur chaque element "donnee" trouvé
            for (i=0;i<items.length;i++) {
                if((items.item(i).firstChild.data)==="ok"){
                    alert(""+(items.item(i).firstChild.data));
                    alert("c'est ok");
                }
                else{
                    alert(""+(items.item(i).firstChild.data));
                    alert("c'est pas bon");
     
                }
            }
        }
    }


    A+
    Dernière modification par Invité ; 29/07/2008 à 15h04.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Merci Jlmag pour ta repponse mais en redemarant le pc qui est sous vista je m'apercois que sa marche

    et pour confirmer je change le paramètre passer par post et je met "essai "et la il m'afficher toujours l'ancien parametre comme ci il était conserve dans un cache.

    comment résoudre sa??

    merci encore jlmag

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    j'ai rajouter ceci au début de reponse.php mais rien y fait

    /// Très important pour AJAX/IE
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', false);
    header('Pragma: no-cache');
    (j'ai trouve sa sur le forum)

    une idée?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re,

    Ce que je fais (pas forcément très propre) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var dt = new Date();
    var params="id=ok&time=" + dt.getMilliseconds();
     
    //on appelle le fichier reponse.txt
    xhr.open("POST", "reponse.php" , true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("Content-length", params.length);
    xhr.setRequestHeader("Connection", "close");
    xhr.send(params);
    Voili

    A+

Discussions similaires

  1. (Ajax crossBrowser) Internet Explorer..
    Par heliophane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/04/2008, 11h35
  2. [AJAX] Exécution sous Internet Explorer (liste déroulantes liées)
    Par dream_of_australia dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/06/2007, 07h24
  3. [AJAX] ajax et internet explorer :s
    Par zakuza dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/04/2007, 19h35
  4. [AJAX] Ajax sous internet explorer 7
    Par leoche dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 06/04/2007, 12h41
  5. [AJAX] [Internet Explorer][p3p][IFRAME] impossible d'ecrire un cookie
    Par magnus2005 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/02/2007, 15h18

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