2010-09-12 4 views
0

J'ai le code suivant:"Objet requis" erreur dans IE8 lors de l'utilisation GetElementsByTagName

if (window.XMLHttpRequest) { 
    xmlHttp = new XMLHttpRequest(); 
} 
else // for older IE 5/6 
{ 
    xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 
} 

var url = 'payment/code/xmlrelay.php?t=rates&id=' + str; 
xmlHttp.open('GET', url, false); 
xmlHttp.send(); 
xmlDoc = xmlHttp.responseXML; 
xmlResult = xmlDoc.getElementsByTagName('Result')[0].firstChild.nodeValue; 

Accès au fichier XML vide suivant à partir d'un serveur Web:

<?xml version="1.0" encoding="UTF-8"?><Property><Result>0</Result></Property> 

ou le plein suivant:

<?xml version="1.0" encoding="UTF-8"?> 
<Property> 
    <Result>1</Result> 
    <Rateable>1</Rateable> 
    <Location>123 Main Road, Everytown</Location> 
    <Instalment>$100.00</Instalment> 
</Property> 

Cela fonctionne dans Firefox, Chrome, Safari et Opera, mais dans Internet Explorer 8, il retourne l'erro r « Objet requis » pour cette ligne:

xmlResult = xmlDoc.getElementsByTagName('Result')[0].firstChild.nodeValue; 

J'ai eu une recherche autour, mais ont été en mesure de trouver quelque chose qui fonctionne. Toute suggestion serait appréciée.

Vive Tama

+1

Est-ce que l'une des options 'xmlDoc.getElementsByTagName ('Result')' ou 'xmlDoc.getElementsByTagName ('Result') [0]' renvoie l'objet requis? –

+0

Vous pouvez simplifier la première partie du code var xmlHttp = window.XMLHttpRequest? new XMLHttpRequest(): nouvel objet ActiveXObject ("Microsoft.XMLHTTP"); –

+0

Pourquoi n'utilisez-vous pas une bibliothèque JS pour votre Ajax? Dans jQuery vous pouvez écrire $ (data) .find ("result"). Text() ... –

Répondre

1

Le problème était le type de contenu du fichier XML. Il y avait un type de contenu de

application/rss+xml 

J'ai changé que pour

text/xml 

et tout fonctionne bien maintenant.

Merci pour vos commentaires, désolé que c'était sous mon nez tout le long.

Questions connexes