0

我正在尝试构建一个 Firefox 扩展,我需要为其读取本地 xml 文件,但无法使用$.ajax. 我的代码如下:

$.ajax({
        type: "GET",
        url: "file:///C:/Users/Mitul Gandhi/Desktop/Library_en.xml",
        dataType: "xml",
        success: function (xml) { }
});
4

1 回答 1

4

由于安全原因,javascript ajax 调用无法读取本地文件内容。

要在 Firefox 插件中读取本地文件,您可以使用Components(file IO),如下所示:

function Read(file)
{
    var ioService=Components.classes["@mozilla.org/network/io-service;1"]
        .getService(Components.interfaces.nsIIOService);
    var scriptableStream=Components
        .classes["@mozilla.org/scriptableinputstream;1"]
        .getService(Components.interfaces.nsIScriptableInputStream);

    var channel=ioService.newChannel(file,null,null);
    var input=channel.open();
    scriptableStream.init(input);
    var str=scriptableStream.read(input.available());
    scriptableStream.close();
    input.close();
    return str;
}

var contents = Read("C:/Users/Mitul Gandhi/Desktop/Library_en.xml");
于 2013-08-11T19:49:46.693 回答