我正在使用HTML5 Canvas和Javascript构建游戏,我正在使用JSON格式的瓷砖地图作为我的关卡。瓷砖在FireFox中正确呈现,但是当我使用Chrome时,JSON提取失败,并且“Access-Control-Allow-Origin不允许使用Origin null”。我使用的是jQuery的$ .ajax命令,我的所有文件都在一个目录中。
我会使用this post的解决方案,但我无法使用网络服务器解决方案。
有没有其他方法可以获取要解析和读取的JSON文件?类似于通过提供URL加载图像的东西?或者有没有办法快速将我的JSON文件转换为全局可用字符串,以便我可以用JSON.parse()解析它?
答案 0 :(得分:1)
Chrome中可能适用的一个选项是使用命令行开关--allow-file-access-from-files
调用浏览器。这个问题解决了这个问题:Google Chrome --allow-file-access-from-files disabled for Chrome Beta 8
另一种可能性是将JSON数据作为脚本获取,将全局变量设置为JSON值
答案 1 :(得分:1)
为什么本地Web服务器不是一个选项? Apache是免费的,可以安装在任何东西上,并且易于使用,IMO。此外,对于Chrome,请查看--allow-file-access-from-files
但是,如果没有其他工作,也许您只需添加指向script
标记中文件的链接,然后将var SomeGlobalObject = ...
附加到每个文件的顶部。您甚至可以通过使用JS将脚本标记附加到head
来动态执行此操作。但最终,您可以执行JSON.parse(SomeGlobalObject)
换句话说,通过添加脚本标记将文件加载到全局命名空间中。通常这被认为是不好的做法,但仅用于测试,在没有任何其他选项的情况下,它可能有效。