使用jQuery导入XML:适用于服务器,而不是本地

我正在编写一个读取XML文件然后输出数据的脚本。 它在我的Web服务器上运行时效果很好,但不会从我的本地计算机运行。 (“542Data.xml”文件与服务器和我的计算机上的HTML页面存储在同一文件夹中,我检查了所有文件版本是否相同。我在Firefox和Chrome中尝试过相同的结果。)

$(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") + "
"); }); }

XML的结构如下:

    39.15611 -86.52664 outdoors   39.19633 -86.53581 outdoors   

我需要更改什么才能在本地工作?

编辑:我错了,它在Firefox中工作。 (尴尬!)

你的脚本在我的Firefox中运行正常。

Chrome有一些安全function,不允许你想做的事情(使用file:///进行AJAX请求)。 您需要启动浏览器:

 chrome --disable-web-security 

禁用安全检查。 ( – --allow-file-access-from-files也可以解决问题,但我还没有测试过)

警告:禁用安全检查会影响您的浏览器安全性,并且只能用于临时开发目的。 如果您计划在较长时间内从本地计算机运行代码,请考虑在本地计算机上安装Web服务器。

如果通过“本地工作”意味着您在文件夹中有html和xml文件并通过双击打开HTML文件,那么就没有办法了。

为了使其在本地工作,您需要一个可以解析http请求的Web服务器。 在文件系统上打开本地文件并不是这里发生的事情。 .ajax()正在发出服务器请求。 没有服务器它将无法正常工作。

你用什么开发? 检查您使用的开发服务器是否可以提供XML文件。

根据给定的(小)信息。 可能存在安全原因,即从谷歌的存储库导入jquery。 请提供更多代码或查看firefox中的错误控制台–ctr + shift + j并复制粘贴错误(如果有),或者只是下载jquery并将其包含在本地位置的路径中。

它在服务器上运行,但不在您的计算机上运行。 请参阅,ajax请求需要运行本地服务器。 要使其工作,请在计算机上启动一些本地服务器。 例如,如果您在Windows上,则下载WAMP,如果在Linux上,则安装LAMP。 将您的文件放在www文件夹中。 然后启动本地服务器..然后使用localhost / your_file_name访问您的文件。 那会给你你想要的结果。