我使用以下代码从JS </ p>中读取xml文件
function ReadFile(xmlPath) {
oxmlhttp = null;
try {
// Firefox, Chrome, etc... Browsers
oxmlhttp = new XMLHttpRequest();
oxmlhttp.overrideMimeType("text/xml");
} catch (e) {
try {
// IE Browser
oxmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
return null;
}
}
if (!oxmlhttp) return null;
try {
oxmlhttp.open("GET", xmlPath, false);
oxmlhttp.send(null);
} catch (e) {
return null;
}
var xmlDoc = oxmlhttp.responseXML.documentElement;
alert(xmlDoc);
return oxmlhttp.responseText;
}
它适用于IE和Firefox,但不适用于Chrome。以下异常“XMLHttpRequest无法加载文件。只有HTTP支持跨源请求。”应该在我使用chrome时发生。
有人知道如何使用JS读取chrome中的xml文件吗?
答案 0 :(得分:1)
根据错误,请求域存在一些问题。您要提醒请求的域名地址:
...
try {
alert(xmlPath) //alerting
oxmlhttp.open("GET", xmlPath, false);
oxmlhttp.send(null);
} catch (e) {
return null;
}
...
并且xmlPath不能包含另一个域地址。 请阅读此问题:Cross domain Ajax request from within js file
答案 1 :(得分:0)
您是在提供xml文件,还是在使用文件系统进行测试?
如果您正在使用文件系统,我建议您在网站目录上启动一个小型HTTP服务器。
您可以轻松启动HTTP服务器来提供目录,例如:使用Python提供当前目录:
$ python -m SimpleHTTPServer
或者,如果你使用的是Windows,也许你会更喜欢HFS用于同一目的:http://www.rejetto.com/hfs/
干杯!