浏览器问题使用JQuery解析XML
我需要使用JQuery访问XML文件。我尝试了这两种方式,但似乎无法在一个浏览器中包含它们。浏览器问题使用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中我能够访问“贝多芬”,而不是能够访问“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?你能帮我解决我的代码有什么问题吗?
帮助?
导致错误消息的问题是您要将XHRRequest(* A * JAX中的A)发送到file://
URL。出于安全原因,这被现代浏览器禁用。相反,请通过http://localhost/..
而不是file://C:/...
来设置网络服务器并访问您的网页。
对于第二部分,请确保您先测试加载fruits.xml
。有可能是存储在这个文件中的XML有错误,或者它的结构不符合你的期望。您可以通过按下F12,转到脚本选项卡,然后单击Start Debugger
来调试IE中的JavaScript。这样,你会得到比“不起作用”更好的错误描述。
苛刻。我使用Chrome的调试器,但没有想到IE的调试器在哪里。我一直在Chrome上按F12,结果发现它适用于IE。那么,我重新检查,并没有错误信息在IE中出现。当贝多芬的警报到来时,它什么都不显示(一个空白的警报框)。 我会尽量做你的第一段!嗯,我的XML很好。:)
这可能与铬
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
第一个例子是一个坏主意:主jQuery函数将文本解析为HTML,而不是XML。您应该使用jQuery的'parseXML()'函数:'var result = $($。parseXML(xml))。find(“album”)。text();'改为。 –