正在离线加载本地 JSON 文件
Loading an local JSON file offline
所以我有一个客户想要一个 站点 ,它不在任何地方托管,但可以通过浏览器在本地访问(文件夹中的 html 文件)。现在棘手的部分是他们想在浏览器中自行更改此站点。所以我认为最好的方法是在本地进行配置。我创建了一个 config.json
并继续 get 它:
$.getJSON("config.json", function(config){
//use config to alter the site
});
我发现 here 然而,现代浏览器会阻止此类请求,因为它被认为是不安全的。例如 Chrome 表示:
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
现在的问题是:我怎样才能拥有一个存储我的配置的文件,以便 Javascript/jQuery 可以加载它。有没有办法要求用户允许文件访问?有没有一种完全不同的方法可以更好地完成所有这些任务?
我期待任何建议,只要它是离线兼容的!
最简单的解决方案:将 config.json
重命名为 config.js
以保持一致性
现在,如果 JSON 是
{
"configKey1": "value1"
}
将 json 包装在一个函数中,
function getconfig() {
return {
"configKey1": "value1"
};
}
现在,只需在 HTML
中添加 <script src="config.js">
然后,当你想获取配置时...调用getconfig
阅读它
let config = getconfig();
所以我有一个客户想要一个 站点 ,它不在任何地方托管,但可以通过浏览器在本地访问(文件夹中的 html 文件)。现在棘手的部分是他们想在浏览器中自行更改此站点。所以我认为最好的方法是在本地进行配置。我创建了一个 config.json
并继续 get 它:
$.getJSON("config.json", function(config){
//use config to alter the site
});
我发现 here 然而,现代浏览器会阻止此类请求,因为它被认为是不安全的。例如 Chrome 表示:
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
现在的问题是:我怎样才能拥有一个存储我的配置的文件,以便 Javascript/jQuery 可以加载它。有没有办法要求用户允许文件访问?有没有一种完全不同的方法可以更好地完成所有这些任务?
我期待任何建议,只要它是离线兼容的!
最简单的解决方案:将 config.json
重命名为 config.js
以保持一致性
现在,如果 JSON 是
{
"configKey1": "value1"
}
将 json 包装在一个函数中,
function getconfig() {
return {
"configKey1": "value1"
};
}
现在,只需在 HTML
中添加<script src="config.js">
然后,当你想获取配置时...调用getconfig
阅读它
let config = getconfig();