Как я могу загрузить локальный файл JSON?

Is there a way to configure firefox using about:config to allow local file access (for demo purposes)?

В частности, используя 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 запрещен" ошибка. Это функция безопасности. Мне действительно нужно, чтобы демонстрация работала в автономном режиме, без доступа к Интернету, и я бы предпочел, чтобы люди, использующие ее, не устанавливали веб-сервер. Я также предпочел бы не вставлять все мои данные в теги HTML, поскольку эти данные могут быть изменены.

Ответы на вопрос(3)

security.fileuri.strict_origin_policy предпочтение вabout:config. Но это открывает некоторые дыры в безопасности; Перенос вашего JSON в дочерний каталог каталога, в котором находится HTML, является гораздо лучшей идеей.

доступ к нему осуществляется следующим образом:

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

Вам нужно добавить эту строку в автономный проект и удалить его, когда он будет запущен, но это лучший способ сделать это без помощи сервера. Вам также придется удалить код AJAX для демонстрации, потому что он не будет работать на вашем локальном компьютере.

 woz26 мая 2012 г., 04:30
А ну понятно. Я не могу придумать ничего другого, что могло бы помочь с этим, кроме использования некоторого кода на стороне сервера. Может быть, вы можете проверить, находитесь ли вы на своем локальном компьютере, и добавить теги сценария в HTML на лету, если это так:if (location.href.indexOf("localhost") != -1) { /* add script tags */ } Тогда вelse, вы бы использовали свой обычный код AJAX. Просто мысль. Дайте мне знать, если вы придумали что-нибудь, что работает.
 FlavorScape25 мая 2012 г., 23:35
Да, это сложно с выставками и еще много чего. обычно должна существовать полностью автономная версия онлайн-версии, которая более динамична ...
 FlavorScape25 мая 2012 г., 22:30
yeah, я сказал, что не хочу этого делать, потому что у меня есть переменное число файлов json, определенных в схеме json. Я не хочу вставлять каждый json вручную, так как это делает CMS бесполезной =)
 woz25 мая 2012 г., 22:34
Подумайте об этом, почему вы получаете свои собственные файлы JSON с AJAX? Будут ли они на другом сервере от вашего проекта, когда вы начнете жить?
Решение Вопроса

запросы JSON с использованием AJAX работают нормально, если ваши файлы данных находятся в пути от исходного HTML-файла. Поэтому я пытался подняться на уровень в каталог _assets /. Решение состоит в том, чтобы переместить _assets в текущий каталог HTML для доступа.

В этом случае вы можете использовать AJAX с async = false.

Ваш ответ на вопрос