XMLHttpRequest для загрузки конфигов в JavaScript

Задача: организовать передачу текстовых файлов в программу JavaScript.

Очевидно, что в целях удобства разработки транслятора было бы неплохо иметь какую-то возможность для загрузки своих конфигов и входного кода без дополнительных ручных манипуляций. Можно, конечно, их вручную забивать прямо в JavaScript код своего транслятора, но, мягко сказать, этот код будет выглядеть ужасно из-за наличия огромных многострочных текстовых переменных. Лучше всего организовать передачу в JavaScript этих входных строк символов используя текстовые файлы.

Однако, одним из ограничений языка JavaScript является запрет скриптам на загрузку сторонних файлов. Сделано это в целях безопасности, чтобы злоумышленник имел меньше шансов загрузить зловредный код на ваш компьютер. Обойти это ограничение можно, используя технологию Ajax, которая позволяет осуществлять http запросы к серверу и, например, получать в ответ какие-то файлы с сервера. В частности, эта технология на сегодняшний момент используется повсеместно для получения информации с сервера без перезагрузки страницы.

Для обращения к серверу необходимо воспользоваться объектом XMLHttpRequest. Ниже приведен пример функции, которая получает в качестве аргумента ссылку на файл, а возвращает содержимое этого файла.

function readFileToPage(path) {    
  var rawFile = new XMLHttpRequest();
  var allText;
  rawFile.open("GET", path, false);
  rawFile.onreadystatechange = function () {
    if (rawFile.readyState === 4) {
      if (rawFile.status === 200 || rawFile.status == 0) {
        allText = rawFile.responseText;
      }
    }
  }
  rawFile.send(null);
  return allText;
}

Подробнее почитать о работе XMLHttpRequest можно здесь

Но для работы с Ajax необходим работающий Http сервер. Установить его можно прямо из Sublime Text. Для этого сначала необходимо установить Package control, как написано здесь

Теперь мы можем установить сервер через Sublime text. Для этого нажимаем комбинацию клавиш ctrl-shift-p и набираем Package install. В выпадающем меню выбираем одноименный пункт и затем печатаем Sublime server и нажимаем по предложенному пакету. Все - сервер установлен. Запустить его можно из меню Tools > Sublime server > Start...

Важное замечание, установленный сервер работает только для открытой текущей директории. Поэтому, чтобы сервер заработал необходимо открыть ваш сайт в редакторе через меню File > Open folder. И затем перезапустить сервер.

Просмотреть работу вашего сайта транслятора можно по ссылке http://localhost:8080

Добавить изображение из буфера обмена (Максимальный размер: 20 МБ)