Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 18h42   #1
Invité régulier
 
Inscription : avril 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 70
Points : 7
Points : 7
Par défaut Problème avec 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 :
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
Type de fichier : html test.html (1,4 Ko, 2 affichages)
Type de fichier : js creation-requete-ajax.js (776 octets, 2 affichages)
Type de fichier : xml cesar2006.xml (636 octets, 2 affichages)
BOLARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 12h37   #2
Invité régulier
 
Inscription : avril 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 70
Points : 7
Points : 7
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
BOLARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 16h29   #3
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
et te renvoi
Code :
1
2
var docxml  = requeteHTTP.responseXML;
alert("OBJET XMLDOC : " + docxml);
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 16h58   #4
Invité régulier
 
Inscription : avril 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 70
Points : 7
Points : 7
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.
BOLARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 18h51   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
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.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 19h04   #6
Invité régulier
 
Inscription : avril 2006
Messages : 70
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 70
Points : 7
Points : 7
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
BOLARD est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h07.


 
 
 
 
Partenaires

Hébergement Web