0

我从 W3Schools 复制了这段代码(连同原始 XML 文件 cd_catalog.xml),我得到了一个空白页:

<html>
<body>

<script type="text/javascript">
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET","cd_catalog.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;

    document.write("<table border='1'>");
    var x=xmlDoc.getElementsByTagName("CD");
    for (i=0;i<x.length;i++)
    {
        document.write("<tr><td>");
        document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
        document.write("</td><td>");
        document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
        document.write("</td></tr>");
    }
    document.write("</table>");
</script>

</body>
</html>

我试过 Opera、Firefox、IE 和 Chrome。没有什么。:(

4

2 回答 2

2

由于您没有使用 Web 服务器,请尝试执行以下操作:

xmlhttp.open("GET","file:///C:/cd_catalog.xml", false);

您可能最终需要一个 Web 服务器,因为浏览器不允许您的脚本访问本地文件,例如,请参阅此处的讨论: http ://www.webdeveloper.com/forum/showthread.php?t=233306

所以考虑在你的机器上设置一个简单的网络服务器,比如lighttpd

编辑:我解释规范的方式(http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-open%28%29-method)是必须通过HTTP。不过还不是很清楚。A file: URL 在此上下文中可能不允许使用,因此预期上面的代码片段可能无法正常工作,您将需要一个 Web 服务器。

一个相关的问题是:

在 IE XMLHttpRequest 中读取文件:// URL

允许 Google Chrome 使用 XMLHttpRequest 从本地文件加载 URL

于 2012-05-30T23:43:53.650 回答
2

将您的代码上传到 Web 服务器。您将在所有浏览器(例如 IE、Chrome 或 Mozilla)上获得所需的输出。但是,如果您在本地机器上尝试相同的代码,那么 IE 和 Chrome 将无法工作。

于 2012-12-05T06:47:54.937 回答