【问题标题】:XMLHttpRequest not working (blank page)XMLHttpRequest 不工作(空白页)
【发布时间】:2012-06-04 07:55:20
【问题描述】:

我从 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。 没有。 :(

【问题讨论】:

  • 你的服务怎么样?我在想你的 cd_catalog.xml 找不到...
  • 您是在使用网络服务器,还是通过文件 URL(如 file:///C:/test/test.html)访问它。后者可能是个问题。
  • 试试console.log(xmlhttp.responseXML)会得到什么?
  • 我没有使用网络服务器。 cd_catalog.xml 位于 C:/(与 cd_catalog.html 文件所在的目录相同)。我尝试了 console.log(xmlhttp.responseXML) 但我仍然得到一个空白屏幕。 :(

标签: javascript html xml xmlhttprequest


【解决方案1】:

由于您没有使用网络服务器,请尝试这样做:

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 在此上下文中可能不允许使用,因此预期上面的代码 sn-p 可能无法正常工作,您将需要一个 Web 服务器。

一个相关的问题是:

Read file:// URLs in IE XMLHttpRequest

和

Allow Google Chrome to use XMLHttpRequest to load a URL from a local file

【讨论】:

  • 试过文件的东西,在两个浏览器中都不起作用。这是我收到的错误消息(Chrome 控制台):1)XMLHttpRequest 无法加载 file:///C:/cd_catalog.xml。仅 HTTP 支持跨源请求。 2)未捕获的错误:NETWORK_ERR: XMLHttpRequest Exception 101 cd_catalog.html:14 无论如何,我想我会尝试从 WAMP 或其他东西运行它。
  • 有很多可供您轻松设置的 Web 服务器选项。看起来你需要一个。另见此处:stackoverflow.com/questions/8449716/…
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-23
    • 2015-11-23
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2014-07-27
    相关资源
    最近更新 更多