使用getElementsbyTagName时,IE8中出现“Object Required”错误

时间:2010-09-12 21:42:57

标签: javascript xml internet-explorer 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;

从网络服务器访问以下空XML文件:

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

或以下完整的一个:

<?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>

这适用于Firefox,Chrome,Safari和Opera,但在Internet Explorer 8中,它会返回此行的错误“Object Required”:

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

我已经进行过搜索,但能够找到有效的方法。任何建议将不胜感激。

干杯 多摩

1 个答案:

答案 0 :(得分:1)

问题是XML文件的内容类型。它的内容类型为

application/rss+xml

我把它改为

text/xml

现在一切正常。

感谢您的评论,对不起它一直在我的鼻子底下。