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

AJAX Discussion :

[AJAX] responseXML.documentElment sur IE8


Sujet :

AJAX

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut [AJAX] responseXML.documentElment sur IE8
    Bonjour,

    Je travail acutellement sur la technologie ajax, j'ai testé la méthode responseText dernièrement. Et maintenant je test la responseXML avec tous les navigateurs.

    Je m'apperçoit que j'ai un soucis avec responseXML.documentElement, car il me renvoie null avec IE8, alors que avec Firefox ou Chrome, il me return un objet Element, c'est un arbre xml.
    Voici ma fonction extraire() qui récupère le document xml, avec la méthode responseXML et affiche le résultat dans une alerte.

    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
     
     
    function extraire(){
    		//Création de requête HTTP
    	var requeteHTTP = creerRequeteAjax(); 
    		//Si requête créée correctement
    	if(requeteHTTP){
    			//Définir la méthode d'envoie de la requeête et le type de communication
    		requeteHTTP.open('GET','cesar2006.xml',true);
    			//Appel de la fonction callback, lorsque que le serveur renvoie une réponse
    		requeteHTTP.onreadystatechange = function () {
    				//Test l'état d'avacement de la requête et les ressouces disponibles 
    			if((requeteHTTP.readyState == 4) && (requeteHTTP.status == 200)){
    					//Récupérer l'arbre xml
    				var docxml  = requeteHTTP.responseXML.documentElement;
    				alert("OBJET XMLDOC : " + docxml);
    			}
    		}
    			//Envoie de la requête 
    		requeteHTTP.send(null);
    	}	
    }
    Je vous met en pièce jointes les trois fichiers, nécessaire à l'exécution de ce script : test.html, creation-requete-ajax.js et cesar2006.xml. Je test cela en local avec EasyPHP 5.3.2i

    Pouvez-vous m'aider, je ne comprends pas pourquoi il me renvoie responseXML null avec IE8,

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Je relance mon sujet, une nouvelle fois, je ne comprend pas pourquoi quand j'utilise responseXML avec IE8, il me renvoie null, alors que avec Firefox et Chrome il renvoie bien un objet Element. Est ce quelqu'un pourrait m'expliquer se problème. Pour précision, je travaille en local avec Easy PHP.

    Je compte vraiment sur votre aide.

    Alors merci, à tous les dévloppeurs qui prendront le temps de lire mon poste.

    Bonne journée à tous !

    dav79

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    et te renvoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var docxml  = requeteHTTP.responseXML;
    alert("OBJET XMLDOC : " + docxml);

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Merci NoSmoking pour ta réponse rapide, en fait que je mette

    var docxml = requeteHTTP.responseXML.documentElement;

    ou
    var docxml = requeteHTTP.responseXML;

    J'obtients le même résultat avec IE8, il m'affiche l'alerte javascript qui contient la chaîne :
    OBJET XMLDOC : + l'objet. Mais comme celui-ci est null, il n'y a rien qui après les deux point, ce qui signifie que je ne peut parcourir l'arbre xml. Et c'est bien là mon soucis. Alors que avec Firfox ou Chrome

    Ca affiche l'alerte suivante : OBJET XMLDOC : [Objet Element]
    Cette fois-ci il me récupère bien l'arbre xml, avec l'élément racine...
    Donc voilà, as-tu déjà été confronté à ce problème, quelles sont les solutions, si il y en a?

    Je présise que dans les options d'internet Explorer 8, j'ai activé la prise en charge native de XMLHTTP.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    apparemment IE est très sensible au document non conforme, au header "Content-Type", "text/xml", la cohérence des charset...autant de point à vérifier, mais je ne suis pas un grand connaisseur de cela.

    Une solution existe, entre autre, c'est de mettre la responseText dans une DIV et de traiter cela comme du DOM, pas très propre mais efficace.

    Une autre est de un DOMParser ou un new ActiveXObject( "Microsoft.XMLDOM"), c'est plus propre...

    La meilleur serait d'y arriver directement.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    Merci, NoSmoking pour ces pistes, je vais essayer de les exploiter et je te tiendrais au courant si j'ai résolu mon problème.

    Bon week-end

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/02/2011, 21h45
  2. [AJAX] AJAX : responseXML
    Par linar009 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/05/2007, 16h07
  3. [AJAX] XML généré ok, responseXML.documentElement vide !
    Par LeCaméléon dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2006, 09h53
  4. [DOM] [Ajax]responseXML et méthodes DOM
    Par Herode dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/07/2006, 20h19
  5. [AJAX] Récupérer paramètre sur POST dans une servlet
    Par _beber85 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 05/04/2006, 11h52

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