如何使用JS读取xml文件

时间:2011-06-01 15:29:41

标签: javascript xml ajax google-chrome

我使用以下代码从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文件吗?

2 个答案:

答案 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/

干杯!