Chrome和IE上的Javascript XML读取错误

时间:2013-01-28 15:19:04

标签: javascript xml xmlhttprequest

适用于Firefox,但不适用于Chrome和IE。

我在当地尝试。 我在httpObj.send(null)上得到错误;线。

我该如何处理这个问题?

HTML文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>XML READ</title>
    <script type="text/javascript">
//---
        function GetXml() {

            if (window.XMLHttpRequest) {

                var httpObj = new XMLHttpRequest();
            } else {

                var httpObj = new ActiveXObject("Microsoft.XMLHTTP");
            }

            httpObj.open("GET", "notification.xml", false);

        // Error Starts Here    
            httpObj.send( null );

            var xmlDocument = httpObj.responseXML;

            var xmlEl = xmlDocument.getElementsByTagName("haber");

  //--          
            for (i = 0; i < xmlEl.length; i++) {


                for (j = 0; j < xmlEl[i].childNodes.length; j++) {

                    if (xmlEl[i].childNodes[j].nodeType != 1) {
                        continue;
                    }

                    alert(xmlEl[i].childNodes[j].firstChild.nodeValue);
                }


            }



        }


    </script>
</head>
<body onload="GetXml()">
</body>
</html>

XML文件

    <?xml version="1.0" encoding="utf-8" ?>
    <notifications>

        <notification id="001">
            <name>First</name>
        </notification>

        <notification id="002">
            <name>Second</name>

        </notification>

    </notifications>

1 个答案:

答案 0 :(得分:2)

如果替换

,您的代码将在chrome和IE中运行

xmlDocument.getElementsByTagName("haber");

xmlDocument.getElementsByTagName("notification");

另外,当您说I try it on local时,请确保将其托管在服务器中,例如apache和服务器正在运行

旧评论: 检查此链接有关浏览器的兼容性并更正ajax调用

http://www.w3schools.com/ajax/ajax_xmlfile.asp