-1

它适用于 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>
4

1 回答 1

2

如果您替换,您的代码可以在 chrome 和 IE 中运行

xmlDocument.getElementsByTagName("haber");

xmlDocument.getElementsByTagName("notification");

此外,当您说I try it on local确保它托管在服务器中时,例如 apache 并且服务器正在运行

旧评论: 检查有关浏览器可战斗性和正确 ajax 调用的链接

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

于 2013-01-28T15:53:47.737 回答