Недопустимый заголовок узла, когда ngrok пытается подключиться к серверу React dev
Я пытаюсь протестировать приложение React на мобильном устройстве. Я использую ngrok, чтобы сделать мой локальный сервер доступным для других устройств и получил эту работу с множеством других приложений. Однако, когда я пытаюсь подключить ngrok к серверу React dev, я получаю сообщение об ошибке:
Invalid Host Header
Я считаю, что React блокирует все запросы из другого источника по умолчанию. Любые мысли?
Ответы
Ответ 1
im столкнулся с подобной проблемой и нашел два решения, которые работают, если смотреть приложение непосредственно в браузере
ngrok http 8080 -host-header="localhost:8080"
ngrok http --host-header=rewrite 8080
очевидно, замените 8080 на любой используемый вами порт
это решение по-прежнему вызывает ошибку, когда я использую это на встроенной странице, которая вытаскивает bundle.js из приложения-приложения. я думаю, поскольку он переписывает заголовок на localhost, когда он встраивается, он смотрит на localhost, который приложение больше не работает на
Ответ 2
Я использовал эту настройку в приложении для реагирования, которое работает. Я создал файл конфигурации с именем configstrp.js, который содержит следующее:
module.exports = {
ngrok: {
// use the local frontend port to connect
enabled: process.env.NODE_ENV !== 'production',
port: process.env.PORT || 3000,
subdomain: process.env.NGROK_SUBDOMAIN,
authtoken: process.env.NGROK_AUTHTOKEN
}, }
Требовать файл на сервере.
const configstrp = require('./config/configstrp.js');
const ngrok = configstrp.ngrok.enabled ? require('ngrok') : null;
и соединяться как таковые
if (ngrok) {
console.log('If nGronk')
ngrok.connect(
{
addr: configstrp.ngrok.port,
subdomain: configstrp.ngrok.subdomain,
authtoken: configstrp.ngrok.authtoken,
host_header:3000
},
(err, url) => {
if (err) {
} else {
}
}
);
}
Не передавать субдомен, если у вас нет пользовательского домена