我从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。 没有。 :(
答案 0 :(得分:2)
由于您没有使用网络服务器,请尝试执行此操作:
xmlhttp.open("GET","file:///C:/cd_catalog.xml", false);
您可能最终需要Web服务器,因为浏览器不允许您的脚本访问本地文件,例如看这里的讨论: http://www.webdeveloper.com/forum/showthread.php?t=233306
因此,请考虑在您的计算机上设置简单的Web服务器,例如lighttpd。
编辑:我解释规范(http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-open%28%29-method)的方式是必须通过HTTP完成。但这并不是绝对清楚的。在此上下文中可能不允许使用文件:因此期望上面的代码段可能不起作用,您需要 Web服务器。
相关问题是:
Read file:// URLs in IE XMLHttpRequest
和
Allow Google Chrome to use XMLHttpRequest to load a URL from a local file
答案 1 :(得分:2)
将您的代码上传到网络服务器。您将在所有浏览器(如IE,Chrome或Mozilla)上获得所需的输出。但是,如果您在本地计算机上尝试相同的代码,那么IE和Chrome将无法运行。