Просто для того, чтобы быть явным. Да, ошибка говорит о том, что вы не можете указывать свой браузер прямо на file://some/path/some.html
. Вот несколько вариантов быстрого развертывания локального веб-сервера, чтобы ваш браузер отображал локальные файлы
Если у вас установлен Python ...
some.html
или файл (ы) существует с помощью команды cd /path/to/your/folder
python -m SimpleHTTPServer
. Это запустит веб-сервер для размещения всего вашего каталога в списке на странице http://localhost:8000
python -m SimpleHTTPServer 9000
, предоставляющий ссылку: http://localhost:9000
Этот подход встроен в любую установку Python.
Выполняйте те же действия, но используйте следующую команду: python3 -m http.server
В качестве альтернативы, если вы требуете более гибкой настройки и уже используете nodejs ...
http-server
, набрав npm install -g http-server
some.html
жизни http-server -c-1
. Это приводит к созданию файла Node.js httpd, который обслуживает файлы в вашем каталоге как статические файлы, доступные из http://localhost:8080
Если ваш предпочтительный язык Ruby ..., то Ruby Gods говорят, что это работает также:
ruby -run -e httpd . -p 8080
Конечно, PHP также имеет свои решение.
php -S localhost:8000
Это решение, которое работает для меня.
Я использовал , получил вместо axios , потому что я не могу заставить его работать там.
Я установил параметры запроса:
const requestOptions = {
encoding: null, // this is important
headers: {
"Accept-Encoding": "gzip",
}
...
};
Не забудьте эту строку encoding: null
, потому что без этого ответ будет автоматически преобразован в строку. (Нам нужен буфер для этой работы)
Затем я создал такую функцию для обработки моего запроса:
const zlib = require("zlib");
async function performRequest(url, options) {
try {
const response = await got(url, options);
if (response.headers["content-encoding"] === "gzip") {
const body = response.body;
try {
const dezziped = zlib.gunzipSync(response.body);
response.body = JSON.parse(dezziped.toString());
} catch (error) {
response.body = body;
}
}
return response.body;
} catch (error) {
return error;
}
}
Примечание: Это синхронная операция вместо этого вы можете использовать gunzip
, если хотите выполнить асинхронный способ.