Ajax et IE7 [Résolu]

Signaler
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous!
Je viens de me mettre à l'AJAX, et en reprenant un tutorial j'ai une erreur (voire 2 d'ailleurs) qui apparaît et que je n'arrive pas à corriger.
Tout d'abord voici le script :

function ajax()
{
    var xhr = null;
   
    if (window.XMLHttpRequest)
    {
        alert("j'ai Firefox"); // message normalement non destiné à IE
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        alert("j'ai IE");
        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;
    }
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { alert_ajax(xhr); }
   
    //on appelle le fichier reponse.txt
    xhr.open("GET", "news.xml", true); // erreur ici-même
    xhr.send(null);
}

function alert_ajax(xhr)
{
    var docXML = xhr.responseXML;
    var items = docXML.getElementsByTagName("nom");
    //on fait juste une boucle sur chaque élément "donnee" trouvé
    for (i=0;i

8 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

>>puisque je vois l'erreur à chaque clic...
    laquelle ?
    mais ne serait-ce pas le non respect du format xml  dans le fichier ?
    au fait... ce fichier ce ne devrait pas être du style  http://... ?

quand à la détection de ce qu'il faut utiliser, j'utilise :

//~~~~~~~~~~~~~~~~~~~~~~
function xmlhttp()    //~~ XMLHTTP ~~
//~~~~~~~~~~~~~~~~~~~~~~
{  var x;
    try               {    x = new ActiveXObject("Microsoft.XMLHTTP");    }
    catch (e)     {    try           {    x = new ActiveXObject("Msxml2.XMLHTTP");    }
                             catch (e)  {    try            {    x = new XMLHttpRequest();    }
                                                    catch (e)  {    x=false;    }
                                               }
                        }
    return x;
}
 
mais ... aucun changement entre IE6 et IE7 à ce niveau.



<hr />



Cordialement                    Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

Merci pour ta réponse.
Tout d'abord, en essayant ton code, j'obtient quelque chose de bizarre. Tes try...catch se font dans un sens différent que mes essais à moi. Et pourtant IE rentre toujours dans le premier test, quoi qu'il arrive... Du coup, dans l'ordre que tu proposes, cela convient très bien à IE, mais il ne m'affiche toujours rien.
Voici mon fichier xml :

<?xml version="1.0"?>
<exemple>
    <news>
        1
        <nom> Pierrick </nom>
        <titre> Coucou! </titre>
        <date> 02/07/2007 </date>
        <message> toto1 </message>
    </news>
    <news>
        2
        <nom> Alain </nom>
        <titre> Voyons... </titre>
        <date> 02/07/2007 </date>
        <message> toto2 </message>
    </news>
</exemple>

Personnellement, je n'ai fait que reprendre un tuto, et il n'a jamais été dit que l'url devait être sous "http://". Et puis ça marche très bien sous Firefox (oui oui ce n'est pas une raison... bon).
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Pour info IE7 implemente httprequest
d'ou tes problemes dans ton post.


http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx

Sinon dans certain cas il faut passer en mode synchrone sur IE7, mettre le parametre a false ou tu as ton erreur.

J'ai eu cette erreur dans un programme, mais j'ai jamais trouvé la raison, pour ie6 et firefox c'est ok en async
et ie 7 c'est ko en async.

Bon courage
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>dans certain cas il faut passer en mode synchrone sur IE7

    c'est bon à savoir.
<hr />


Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

Merci pour vos réponses. Cependant, il doit y avoir un soucis, puisque IE7 implémente en effet httprequest, mais aussi ActiveXObject... ceci est-il normal ou non? Bon en tous cas, moi ça me va très bien. Le seul soucis c'est vraiment l'erreur lorsque j'ouvre mon fichier xml. Le fait de mettre false, ne change rien. Je vais essayer de mettre l'adresse sous la forme "http://", c'est ma dernière issue :/

Merci encore ;)
Messages postés
29
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 juillet 2007

Bon, alors j'ai mis le fichier xml sur mon ftp, et tu avais finalement raison bultez. L'url doit bien être sous la forme "http://". Cependant, cela ne marche que sous IE. Firefox n'affiche plus rien.
J'ai alors tout mis sur mon ftp, dans un même répertoire. Et cette fois-ci tout fonctionne parfaitement sous les 2 navigateurs....enfin! ouf!

Je plainds les développeurs multi-plateforme......................
Merci pour votre aide.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
pour utiliser un .xml, j'ai utilisé une autre méthode :

http://www.javascriptfr.com/codes/CONTROLE-CHAMPS-FORMULAIRE-CCF_43101.aspx et
http://www.javascriptfr.com/codes/LISTE-SOFTS-UTILISES_41421.aspx    et
par exemple : peut-être ?


et http://www.javascriptfr.com/codes/EBAUCHE-LECTEUR-RSS_36794.aspx
        qui lui ne fonctionne pas avec FireFox !



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>L'url doit bien être sous la forme "http://".
    je n'osais l'affirmer. mais curieux que ça semble ne pas fonctionner  sans...



<hr />



Cordialement                Bul     [mon Site]     [M'écrire]



<hr />