代码之家  ›  专栏  ›  技术社区  ›  Khurram Shaikh

使用file://协议的Firefox插件中的跨域问题

  •  0
  • Khurram Shaikh  · 技术社区  · 5 年前

    我最近有一个windows应用程序,它维护着密码数据库,每个用户都可以下载他们的文件并存储在本地驱动器中。显然,我们不允许他们每次都访问这个应用程序。它是一个服务器应用程序和客户端应用程序铬扩展读取这个本地文件,并列出所有密码接管标签和填写用户名和密码。它工作得很好。

    现在我正在尝试为Firefox开发类似的客户机应用程序。我试图从本地驱动器访问这个文件,它不允许我这样做使用文件协议。

    我花了近8个小时研究跨领域的功能,但没有运气

    下面是在chrome扩展中仍能正常工作的代码。

    function readTextFile(file)
    {
        var key = localStorage.getItem("_login");
        var rawFile = new XMLHttpRequest();
        rawFile.open("GET", file, false);
        rawFile.onreadystatechange = function ()
        {
            if(rawFile.readyState === 4)
            {
                if(rawFile.status === 200 || rawFile.status == 0)
                {
                  var fullresponse = decrypt(rawFile.responseText,key);
                  var username = fullresponse.split("|")[1];
                  var userdata = fullresponse.split("|")[0];
                  $("#username").text(username);
                  if (fullresponse.length>0){
                    $('#jstree_demo_div').html(userdata);
                    $('#jstree_demo_div').jstree();
                  }else{
                    $('#jstree_demo_div').html("Password Database is not found");
                  }
                }else{
                  $('#jstree_demo_div').html("Password Database is not found");
                }
            }else{
    
            }
        }
        rawFile.send(null);
    }
    

    enter image description here

    当我在Firefox广告中使用相同的功能时,它将不起作用,并不断地给我跨域警告。

    0 回复  |  直到 5 年前