-1

我正在编写一个读取 XML 文件然后输出数据的脚本。当它在我的网络服务器上运行时,它可以完美运行,但不能从我的本地机器上运行。(“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 中工作。(尴尬的!)

4

5 回答 5

3

您的脚本在 Firefox 中对我来说很好。

Chrome 有一些安全功能,不允许您做您想做的事情(file:///用于 AJAX 请求)。您需要使用以下命令启动浏览器:

chrome --disable-web-security

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

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

于 2013-04-14T20:03:18.927 回答
0

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

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

于 2013-04-14T19:54:27.007 回答
0

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

于 2013-04-14T19:55:44.277 回答
0

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

于 2013-04-14T19:56:01.523 回答
0

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

于 2013-04-14T19:59:59.347 回答