使用Jquery加载xml - 为什么这不起作用

时间:2010-06-01 19:34:12

标签: javascript jquery xml

我有常规的javascript代码,我正在尝试利用JQuery 来加载和解析xml文件。我有以下内容:

function loadXml() {
  $(function() {
        $.ajax({
                type: "GET",
                url: "my_file.xml",
                dataType: "xml",
                success: parseXml

        });
    });

}

function parseXml() {
   alert("Parsing...");
}

调用loadXml时,无法执行回调成功函数。我正在运行所有本地my_file.xml与此javascript位于同一目录中。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

另外,为什么你在另一个函数中使用DOMReady快捷方式功能,这没有任何意义。

删除$(function(){});这甚至可以解决你的问题......

如果应该像这样设置任何东西:

jQuery(function($) {
    loadXML()
});

完整代码看起来像这样(my_file.xml位于完全相同的目录中):

<script src="http://code.jquery.com/jquery.js"></script>
<script>
function loadXml() {
        $.ajax({
                type: "GET",
                url: "my_file.xml",
                dataType: "xml",
                success: parseXml

        });
}

function parseXml(data) {
   alert(data);
}


$(function() {
loadXml();
});
</script>

答案 1 :(得分:0)

大多数现代浏览器都不允许使用ajax来检索基于file://的资源,即使主文档是从“相同”域运行的。

因此,实际上,您在此处遇到了同源策略。

只需设置一个本地http网络服务器,它应该没问题。

解释问题:

如果您下载到c:\users\foo\documents\CoolApp\的文档可以读取“同一”域中的 ANY 文件,该怎么办?

我想你得到我的漂移......