4

我正在使用 HTML5 Canvas 和 Javascript 构建游戏,并且我正在为我的关卡使用 JSON 格式的平铺地图。瓷砖在 FireFox 中正确呈现,但是当我使用 Chrome 时,JSON 提取失败,并显示“Access-Control-Allow-Origin 不允许 Origin null”。我正在使用 jQuery 的 $.ajax 命令,我的所有文件都在一个目录中。

我会使用这篇文章的解决方案,但我不能使用 Web 服务器解决方案。

有没有其他方法可以获取要解析和读取的 JSON 文件?类似于仅通过提供 URL 来加载图像的东西?或者有什么方法可以快速将我的 JSON 文件转换为全局可用的字符串,以便我可以用 JSON.parse() 解析它?

4

2 回答 2

1

在 Chrome 中可能对您有用的一种选择是使用命令行开关调用浏览器--allow-file-access-from-files。这个问题解决了这个问题:Google Chrome --allow-file-access-from-files disabled for Chrome Beta 8

另一种可能性是将 JSON 数据作为脚本获取,将全局变量设置为 JSON 值

于 2012-10-21T06:41:25.780 回答
1

为什么本地 Web 服务器不是一个选项?Apache 是免费的,可以安装在任何东西上,而且易于使用,IMO。此外,特别是对于 Chrome,请查看--allow-file-access-from-files

但如果没有其他工作,也许您可​​以在script标签中添加指向文件的链接,然后附加var SomeGlobalObject = ...到每个文件的顶部。您甚至可以通过使用 JS 将脚本标签附加到head. 但最后,您可以不使用 AJAX,而是这样做JSON.parse(SomeGlobalObject)

换句话说,通过添加脚本标签将文件加载到全局命名空间中。通常这会被认为是不好的做法,但仅用于测试,在没有任何其他选项的情况下,它可能会起作用。

于 2012-10-21T06:43:07.327 回答