Aller au contenu

DocumentElement vide sous IE ? Quelle solution ?


Sujets conseillés

Posté

Salut à toutes et à tous.

Après moultes recherches, une bonne centaines de liens Google testé, et plusieurs heures de prise de tête... j'abdique, j'en appelle à vos connaissances :)

Le problème est le suivant :

J'utilise AJAX pour envoyer une requête à un fichier PHP (jusque là, rien d'anormal). Ce fichier PHP me renvoit un document XML (rien d'anormal non plus), le content-type est bien envoyé, le XML est, il me semble, bien conforme... et tout cela fonctionne à merveille... sous Gecko !

En effet, sous IE, et Opéra (qui a tendance a suivre IE je trouve :D ), ça ne fonctionne pas. Au lieu d'accèder au contenu j'ai un coup un "objet recquis", un autre un "null"... Bref c'est la galère >_<

Et je m'en veux un peu par moment d'avoir laché la méthode responseText :D

Voici le code PHP :

header("Content-Type: text/xml; charset=ISO-8859-1;");
echo '<?xml version="1.0" ?><document><error>1</error><message>Error : missing data</message></document>';

Maintenant, le traitement en JS :

		http.onreadystatechange = function()
{
if(http.readyState == 4)
{
if(http.status == 200)
{


if(http.responseXML) {
window.alert( http.responseXML);

var xmldoc = http.responseXML.documentElement;
loadNode.innerHTML = xmldoc.getElementsByTagName("message")[0].firstChild.data;


}
}
else
{

loadNode.innerHTML = "<span style='color:red;' ><strong>Erreur </strong>: <i>" + http.statusText + "</i>";
}

}
};

Info : loadNode est le noeud d'affichage HTML de la réponse ajax sur ma page. Mais on peut très bien remplacer "loadNode.innerHTML" par "window.alert", ça ne changera rien...

Merci d'avance à toutes celles et tous ceux qui participeront ;)

EDIT : Problème résolu, je n'ai par contre pas réussi à trouver la source du problème, ça c'est juste mis à marcher d'un coup? Peut-être ai-je fait une modification sans le vouloir ?

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...