如何加载本地json文件?

时间:2012-05-25 20:02:15

标签: json security firefox local-storage

有没有办法使用about:config配置firefox以允许本地文件访问(用于演示目的)?

特别是使用FF12,我需要能够对json数据进行本地文件访问。它在服务器上运行良好,但我想让这个演示更加便携。

        $.ajax({
            url: "../_assets/levelschema.json",
            complete: function (data) {
                Levels = data.levels;
                //...
            },
            success: function (data) {                    
                // wont get called b/c files don't have 200 HTTP status
            },
            async: false
        });

我已经尝试将其设置为不async = false,但我收到“访问受限制的URI拒绝”错误。这是一项安全功能。我真的需要离线工作的演示,没有互联网访问,我更喜欢使用它的人不必安装Web服务器。我也不想将所有数据都嵌入到HTML标记中,因为这些数据可能会发生变化。

3 个答案:

答案 0 :(得分:4)

您可以在security.fileuri.strict_origin_policy中翻转about:config偏好设置。但这会打开一些安全漏洞;将您的JSON移动到HTML所在目录的子目录中是一个更好的主意。

答案 1 :(得分:1)

如果JSON文件位于本地计算机上,请按以下方式访问:

<script type="text/javascript" src="myFile.json"></script>

您必须将该行添加到离线项目中并在其生效时将其删除,但这是在没有任何服务器端帮助的情况下执行此操作的最佳方法。您还必须删除演示的AJAX代码,因为它无法在您的本地计算机上运行。

答案 2 :(得分:1)

好的,只要你的数据文件从你的原始HTML文件中走下去,使用AJAX的JSON请求就可以正常工作。所以我试图升级到_assets /目录。解决方案是将_assets移动到HTML当前目录中以进行访问。

在这种情况下,您可以将AJAX与async = false一起使用。