При использовании приложения create-реагировать я также столкнулся с аналогичной проблемой.Я предоставлю решение, которое вы можете использовать, чтобы решить эту проблему, если вы не используете create-реагировать на приложение или извлекли его, которое не оставляет никаких следов его присутствия, я дам ссылки на код с открытым исходным кодом, который исправилэто, и вы можете следовать, чтобы найти решение.
Решение было создать файлы с именем
.env.development
HOST=ec2-13-121-203-43.ap-south-1.compute.amazonaws.com
.env.development.local
DANGEROUSLY_DISABLE_HOST_CHECK=true
.env.local
HOST=ec2-13-121-203-43.ap-south-1.compute.amazonaws.com
Код create-react-app
с открытым исходным кодом, и компонент, который настраивает эти заголовки, находится в зависимости react-scripts
npm в package.json Код с открытым исходным кодом здесь .
Здесь - это проблема Github, частью которой я (devssh) решил эту проблему
Здесь является надлежащей документацией для того, что вы должны делать.
Причина, по которой я знаю, что кто-то использовал create-реакции-приложение или извлек из него при создании вашего проекта, заключается в том, что вы упомянули ошибку Invalid host header
есть только в этом сценарии, где они должны бытьпеть общие библиотеки http.При извлечении из приложения вы получаете контроль над сценариями веб-пакета.
Команда безопасности в приложении create-реагировать на приложения добавила этот заголовок, чтобы отговорить людей, которые не понимают безопасность, с помощью различных заголовков, таких какCORS, а также для получения согласия, чтобы отключить проверку.Чтобы узнать больше о заголовках безопасности здесь - это руководство внизу страницы, у вас есть ссылки на заголовки.
Ошибка возникает из-за того, что в их коде есть условие if, при котором они проверяют наличие перекрестных запросов, и, если доменное имя не совпадает, они поднимают эту ошибку и воспринимают ее как злоумышленника, пытающегося получить доступ к приложению.поэтому они блокируют запрос и не отправляют bundle.js.
Мне также пришлось добавить "proxy": "http://0.0.0.0:8080",
в мой package.json.Вот мой полный пакетВы можете просмотреть конфигурацию веб-пакета внутри папки конфигурации, если вы изменили свою собственную, существенно что-то сломав.
Также следуйте документации, которую я предоставил ранее, если вы используете HTTPS, чтобы включить это!Если вы пытаетесь воссоздать то, что делает create-реакции-приложение, самостоятельно, следуя заголовку HOST в их открытом исходном коде, вы сможете увидеть место, которое они проверяют, и поднять Invalid Host header
и соответственно отредактировать вашу конфигурацию.
Альтернатива:
Здесь - еще одна проблема SO , которая решает проблему путем изменения конфигурации своего devServer.Они исправили следующее в своем веб-пакете devServer
disableHostCheck: true
или
public: 'dns-here.com'
Если вы используете его с флагом --production, возможно, вам придется отключить проверку хоста или добавитьдомен по умолчанию в вашем prod.webpack.yml или укажите его как флаг при запуске приложения реакции, как показано в этой проблеме github , которая предлагает добавить --public your-host:8080
или множество других возможных исправлений.
Если это не помогло устранить проблему, оставьте комментарий с проблемой, и я обновлю ее соответствующим образом.:)