getJSON在chrome

时间:2017-06-15 13:14:15

标签: javascript json google-chrome cross-platform getjson

我正在开发一个跨平台(html5)项目,稍后将在Android和iOS上启动,我遇到问题getJSON从Chrome浏览器本地加载.json文件中的数据。致电时

jQuery.getJSON("layout.json", this.onLoaded);

我得到了

  

错误:XMLHttpRequest无法加载file:/// E:/app/layout.json。交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https`

在jquery-3.2.1.js:9566,即:xhr.send( options.hasContent && options.data || null );

我上网寻找解决方案并想出了这两种解决方案,这些解决方案在我的案例中不起作用:

  1. 在chrome上手动启用access-control-allow-origin
  2. 在服务器上上传项目文件
  3. 我正在寻找一种在本地加载json数据的解决方案。

    非常感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

此Chrome扩展程序帮助我解决了Chrome中的同样问题,请查看允许控制 - 允许 - 来源:*

答案 1 :(得分:1)

我认为没有跨浏览器解决方案,因为它是一种保护用户数据的安全措施,浏览器的版本实际上是通过意图来阻止它。在Chrome中,您可以在启动时使用--allow-file-access-from-files选项,但这不是普通用户会接受的事情,并且(某些人)为什么没有办法仅限制某些文件的首选项,因此这会再次导致安全问题。

但是,如果您创建本地服务器,请将要加载的文件放入服务器上加载文件的页面,这样就可以了。这是非常可行的,有许多Android本地服务器,可能还有其他操作系统。

PS你也可以创建一个浏览器扩展。由于目前许多浏览器(Opera,Vivaldi,Yandex等)支持Chromium扩展,甚至FireFox,它可能是一个有趣的选择。但你必须了解扩展的确切限制,我不是这方面的专家。