XMLHttpRequest.open()抛出NS_ERROR_UNKNOWN_PROTOCOL

时间:2017-04-11 11:14:18

标签: javascript xml xmlhttprequest

我想用Javascript打开一个本地XML文件,在我的HTML页面上创建一个表格的XML内容。因此,如果单击特定标记,我已编写以下javascript代码来打开XML文件。

function BuildTemplate(path) {
    var xmlhttp;
    if (window.XMLHttpRequest) {//Code for IE7+, Firefox, Chrome
        xmlhttp = new XMLHttpRequest();
    } else {//Code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET", path, false); // -> NS_ERROR_UNKNOWN_PROTOCOL
    xmlhttp.send();
    xmlDoc = xmlhttp.responseXML;
    // ... generate text [table] out of XML content
    return text;

传递给函数的路径如下所示:

D://Here//Is//My//Example//Folder//ContentTable.xml 

错误已经在Firefox上引发,但它也无法在Chrome和IE11上运行。

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先,它可能是一个安全问题,因此现代浏览器可能不支持访问本地文件。

但您可以尝试在路径前添加file:///

首先将//中的/替换为path

path = path.replace(new RegExp('//', 'g'), '/'); //replace all occurances

这会将D://Here//Is//My//Example//Folder//ContentTable.xml更改为D:/Here/Is/My/Example/Folder/ContentTable.xml

然后预备file:///

path = 'file:///' + path;