我有常规的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位于同一目录中。有什么想法吗?
答案 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 文件,该怎么办?
我想你得到我的漂移......