我需要使用JQuery访问XML文件。我尝试了这两种方式,但我似乎无法在一个浏览器中包含它们。
下面:
在Chrome中,这可行:
var xml = "<music><album>Beethoven</album></music>";
var result = $(xml).find("album").text();
alert(result);
现在我尝试将它与此代码段一起使用,它在IE中运行良好:
jQuery.get('fruits.xml', function(data) {
alert(data);
});
问题是,如果我将这两个代码放在一起,其中一个不能在另一个上工作。所以在Chrome中,我可以访问“Beethoven”而无法访问“fruits.xml”,但却给了我这个错误:
XMLHttpRequest cannot load file:///C:/Python32/fruits.xml. Origin null is not allowed by Access-Control-Allow-Origin.
另一方面,在IE中,我可以访问fruits.xml的全部内容并将其保存到变量中,但我需要访问Chrome中可用的XML属性的代码在IE中不起作用。
如您所见,我想使用第二段代码获取xml的内容,而我将使用第一段代码访问xml的内容。有没有其他方法可以使用Javascript访问XML?你能帮我解决我的代码有什么问题吗?
帮助?
答案 0 :(得分:1)
导致错误消息的问题是您正在向file://
URL发送XHRRequest(A * * A * JAX中)。出于安全原因,现代浏览器禁用此功能。相反,请设置一个网络服务器,通过http://localhost/..
代替file://C:/...
访问您的网页。
对于第二部分,请确保首先测试加载fruits.xml
。存储在此文件中的XML存在错误,或者其结构不符合您的预期。您可以通过按 F12 ,转到“脚本”选项卡,然后单击“{1}},在IE中调试JavaScript。这样,您将获得比“不起作用”更好的错误描述。
答案 1 :(得分:0)
这可能是与Chrome相关的错误
loading local files in chrome bug/security feature
Problems with jQuery getJSON using local files in Chrome
Accessing relative URL's via "ajax" from "file://" content
作为建议不要将你的xml
包装在jquery中并以这种方式解析它可能会因浏览器的使用而异.parseXML