我有一个网页作为配置编辑器,这意味着它将通过打开.html文件而不是使用http来访问。
这个页面需要访问另一个文件(要编辑的配置文件),该文件位于同一目录中。使用相对路径
这个页面需要访问另一个文件(要编辑的配置文件),该文件位于同一目录中。使用相对路径
General.json
访问文件。 var getJSONFileContent = function( url ) {
return $.ajax({
type: "GET",
url: url,
async: false
}).responseText;
};
var currentConfigAsJson = getJSONFileContent( "General.json" );
这段代码在火狐浏览器上完美运行,无需更改任何设置,但在IE和Chrome上均失败。
Chrome错误信息:
file:///C:/Users/XXX/Desktop/XXX/General.json.
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.m.ajaxTransport.send
@ jquery-1.11.3.min.js:5m.extend.ajax
@ jquery-1.11.3.min.js:5getJSONFileContent
@ General.html:68(anonymous function)
@ General.html:75m.Callbacks.j
@ jquery-1.11.3.min.js:2m.Callbacks.k.fireWith
@ jquery-1.11.3.min.js:2m.extend.ready
@ jquery-1.11.3.min.js:2J
@ jquery-1.11.3.min.js:2
网络浏览器错误:
SCRIPT5: Access denied.
Fichier : jsoneditor.min.js, line : 7, column : 8725
我读到了一些关于Chrome(和可能是IE和其他浏览器)由于安全原因禁止此操作的信息,并且必须使用特殊参数启动Chrome才能绕过此限制。
但是为什么在Firefox上可以工作?有没有办法让它在Chrome上不需要传递特殊参数就能正常工作?
是否有Chrome特定的功能可允许我读写文件,而无需更改设置或传递参数?最终用户不希望被打扰。