离线加载本地JSON文件

leo*_*ess 2 javascript jquery json offline

所以我有一个客户想要一个不在任何地方托管但可以通过浏览器本地访问的网站(文件夹中的 html 文件)。现在棘手的部分是他们想在浏览器中自己更改此网站。所以我认为最好的方法是在本地进行配置。我创建了一个config.json并继续获取它:

$.getJSON("config.json", function(config){
    //use config to alter the site
});
Run Code Online (Sandbox Code Playgroud)

我在这里发现现代浏览器会阻止这种请求,因为它被认为是不安全的。例如 Chrome 说:

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Run Code Online (Sandbox Code Playgroud)

现在的问题是:我怎样才能有一个文件来存储我的配置,以便 Javascript/jQuery 可以加载它。有没有办法要求用户允许文件访问?有没有一种完全不同的方法来完成这一切,更适合这项任务?

我期待任何建议,只要它是离线兼容的!

Jar*_*a X 5

最简单的解决方案:重命名config.jsonconfig.js以保持一致性

现在,如果 JSON 是

{
    "configKey1": "value1"
}
Run Code Online (Sandbox Code Playgroud)

将 json 包装在函数中,

function getconfig() { 
    return {
        "configKey1": "value1"
    };
}
Run Code Online (Sandbox Code Playgroud)

现在,只需<script src="config.js">在您的 HTML 中添加

然后,当你想获取配置时......调用getconfig来读取它

let config = getconfig();
Run Code Online (Sandbox Code Playgroud)