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

2

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   ответа
4

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

1

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

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

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

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

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

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

Похожие вопросы