将本地xml文件读取为Javascript中的字符串

将本地xml文件读取为Javascript中的字符串,javascript,Javascript,我惊讶地发现这很难做到,但我还没有找到一种方法来做到这一点。 基本上,我有一个包含以下内容的目录: --index.html --script.js --file.xml 我想将file.xml的内容读入JS字符串进行解析。 我找到的唯一方法是使用同步xmlhttp对象,该对象在我的浏览器中默认禁用。 在js中是否有另一种(最好是简单的)将文件读入字符串的方法?因此,我可能会晚一点参加聚会,但这是为了帮助那些一直在寻找解决方案的人 首先,如果您没有在服务器上运行HTML文件,那么浏览器中需要允

我惊讶地发现这很难做到,但我还没有找到一种方法来做到这一点。 基本上,我有一个包含以下内容的目录:

--index.html
--script.js
--file.xml
我想将file.xml的内容读入JS字符串进行解析。 我找到的唯一方法是使用同步xmlhttp对象,该对象在我的浏览器中默认禁用。
在js中是否有另一种(最好是简单的)将文件读入字符串的方法?

因此,我可能会晚一点参加聚会,但这是为了帮助那些一直在寻找解决方案的人

首先,如果您没有在服务器上运行HTML文件,那么浏览器中需要允许CORS。其次,我发现大多数人在这类线程中引用的代码片段不适用于加载本地XML文件。试试这个(来自官方文档的示例):

var xhr=new-XMLHttpRequest();
open('GET','file.xml',true);
xhr.timeout=2000;//以毫秒为单位的时间
xhr.onload=函数(){
//请求已完成。请在此处进行处理。

var xmlDoc=this.responseXML;//所以,我参加聚会可能会晚一点,但这是为了帮助那些一直在寻找解决方案的人

首先,如果您没有在服务器上运行HTML文件,则浏览器中需要允许CORS。其次,我发现大多数人在此类线程中引用的代码片段不适用于加载本地XML文件。请尝试以下操作(示例取自官方文档):

var xhr=new-XMLHttpRequest();
open('GET','file.xml',true);
xhr.timeout=2000;//以毫秒为单位的时间
xhr.onload=函数(){
//请求已完成。请在此处进行处理。

var xmlDoc=this.responseXML;//您需要使用异步Ajax。如果您想要简单,我建议使用jQuery,它有一个很好的加载函数。您需要使用异步Ajax。如果您想要简单,我建议使用jQuery,它有一个很好的加载函数。如果在最后一行xhr.send(null)处出现错误,这是行不通的如果在最后一行xhr.send(null)处出现错误,则此操作无效
var xhr = new XMLHttpRequest();
xhr.open('GET', 'file.xml', true);

xhr.timeout = 2000; // time in milliseconds

xhr.onload = function () {
  // Request finished. Do processing here.
  var xmlDoc = this.responseXML; // <- Here's your XML file
};

xhr.ontimeout = function (e) {
  // XMLHttpRequest timed out. Do something here.
};

xhr.send(null);