我正在编写一个读取XML文件然后输出数据的脚本。它在我的Web服务器上运行时效果很好,但不能从我的本地计算机运行。 (“542Data.xml”文件与服务器和计算机上的HTML页面存储在同一文件夹中,我检查了所有文件版本是否相同。我在Firefox和Chrome中尝试过相同的结果。)
<div id="output"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "542Data.xml",
dataType: "xml",
success: parseXml
});
});
function parseXml(xml)
{
$(xml).find("point").each(function(index)
{
$("#output").append("Name: " + $(this).attr("name") + "<br />");
});
}
</script>
XML的结构如下:
<?xml version="1.0"?>
<destinations>
<point name="Tot Lot at Bryan Park">
<lat>39.15611</lat>
<long>-86.52664</long>
<type>outdoors</type>
</point>
<point name="Playground at Cascades Park">
<lat>39.19633</lat>
<long>-86.53581</long>
<type>outdoors</type>
</point>
</destinations>
我需要更改以使其在本地工作?
编辑:我错了,它在Firefox中运行。 (尴尬!)
答案 0 :(得分:3)
你的脚本在我的Firefox中运行正常。
Chrome有一些安全功能,禁止您想要执行的操作(使用file:///
进行AJAX请求)。您需要使用以下命令启动浏览器:
chrome --disable-web-security
禁用安全检查。 (--allow-file-access-from-files
也可以做到这一点,但我还没有测试过它)
警告:禁用安全检查会影响您的浏览器安全性,并且只能用于临时开发目的。如果您计划在较长时间内从本地计算机运行代码,请考虑在本地计算机上安装Web服务器。
答案 1 :(得分:0)
如果通过“本地工作”表示您在文件夹中包含html和xml文件,并通过双击打开HTML文件,那么就没有办法了。
为了使其在本地工作,您需要一个可以解析http请求的Web服务器。在文件系统上打开本地文件并不是这里发生的事情。 .ajax()
正在发出服务器请求。如果没有服务器,它将无法工作。
答案 2 :(得分:0)
你在用什么开发?检查您使用的开发服务器是否可以提供XML文件。
答案 3 :(得分:0)
根据给定的(小)信息。可能存在安全原因,即从谷歌的存储库导入jquery。请提供更多代码或查看firefox中的错误控制台--ctr + shift + j并复制粘贴错误(如果有),或者只是下载jquery并将其包含在本地位置的路径中。
答案 4 :(得分:0)
它在服务器上运行但在您的计算机上运行。请参阅,ajax请求需要运行本地服务器。要使其工作,请在计算机上启动一些本地服务器。例如,如果您在Windows上,则下载WAMP,如果在Linux上,则安装LAMP。将您的文件放在www文件夹中。然后启动本地服务器..然后使用localhost / your_file_name访问您的文件。那会给你你想要的结果。