Скажите, пожалуйста, почему локальный javascript не может открыть локальный файл? Я пытаюсь создать простое приложение javascript/html, которое должно запускаться на локальном компьютере из локальной файловой системы. Это приложение пытается прочитать файл конфигурации (JSON), используя различные методы, но получает следующие ошибки (Chrome):Локальный javascript не может открыть локальный файл
В случае XMLHttpRequest, метод
open("GET", filename, true)
бросает исключение:XMLHttpRequest невозможно загрузить файл: /// bla-bla-bla. Запросы на кросс-начало поддерживаются только для схем протокола: http, data, chrome, chrome-extension, https, chrome-extension-resource.
В случае
document.createElement("iframe").src=filename
у меня есть еще одно исключение:VM596: 1 Uncaught DOMException: Не удалось прочитать свойство 'contentDocument' от 'HTMLIFrameElement': Blocked кадр с происхождения "нулевой" из доступ к кросс-происхождения кадра.»
в случае
var f=new File([], filename, { type: "text/plain" });
у меня есть объект файла с нулевым размером и без ошибок на всех. FileReader возвращает пустой результат тогда.
Итак, мои вопросы: Почему это «кросс-происхождение»? Эти файлы хранятся в одном каталоге! И как я могу открыть локальный файл из той же директории origin /, с которой я запускаю скрипт? Пожалуйста, помогите.
P.S .: Да, я знаю о --allow-file-access-from-files
, но мне нужно запустить это клиентами.
Протокол 'file: //' действительно имеет очень ограниченное использование, предназначенное для тестирования или просмотра одного отдельного файла. Для правильного тестирования Webapp вы захотите настроить небольшую базовую программу «веб-сервера», которая может принимать запросы на «localhost/index.html» или «localhost/bla-bla-bla.js». Например, Python позволяет установить один из них в текущей папке с помощью командной строки с помощью 'python -m SimpleHttpServer 80' – Katana314
@BbIKTOP, tou может преобразовать файл JSON в файл javascript (добавьте« var myVariable = 'в начало json-файл), а затем включить его, используя '' данные будут в 'myVariable' (объект). Не лучшее решение, но работает. –
У них более 100 ПК без локальной сети, работает очень специфическое программное обеспечение (тренажерный зал), и это приложение предназначено для показа рекламных видеороликов. Вот почему невозможно использовать такое очевидное решение с веб-сервером, поэтому я спрашиваю об этом. Несомненно, можно не использовать конфигурацию json, но вставить код в код, возможно, в отдельный файл. Это не интересно, и здесь нет необходимости спрашивать и обсуждать его. – BbIKTOP