"Encabezado de host no válido" al ejecutar el servidor de desarrollo Angular / cli c9.io


84

Comando actual: ng serve --host --public $IP:$PORT

Resultados en mi sitio web:

Encabezado de host no válido


es el mismo que el anterior ... el mismo resultado
Olejs

Respuestas:


103

La --disable-host-checkbandera funciona bien si necesita ejecutar desde Cloud9.

Yo uso el siguiente comando:

ng serve --open --host $IP --port $PORT --disable-host-check

Funcionará, pero si lo usa --disable-host-check, recibirá una advertencia en la consola. WARNING: Running a server with --disable-host-check is a security risk. See medium.com/webpack/… para obtener más información.
Krishnadas PC

1
esta opción ya no está disponible
edi


19

Ver este problema

Edite la siguiente línea en node_modules/webpack-dev-server/lib/Server.js(línea 425), cambie a:

return true;

Estoy usando IDE cloud9 continuación, ejecute: ng serve --port 8080 --host 0.0.0.0. Ahora funciona bien.


27
Puede ejecutar sin editar código agregando --disableHostCheck true ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true
tarn

3
cambie la siguiente línea en node_modules / webpack-dev-server / lib / Server.js: if (this.disableHostCheck) return true; cambiar para volver verdadero;
rakesh kashyap

Vea este problema de Angular CLI GitHub con respecto a los riesgos potenciales de disableHostCheck, solo para estar al tanto de lo que está haciendo.
jmq

La respuesta de Adetiloye es mucho mejor
Matthew Dolman

3
Runng serve --host 0.0.0.0 --disable-host-check
Ubaid Azad

15

Esto funciona para mi:

ngrok http --host-header=rewrite PORT

por ejemplo :

ngrok http --host-header=rewrite 4200

No es la respuesta que necesitaba el OP, pero gracias por agregarla de todos modos. Funciona para túneles ngrok sin cambiar la configuración del proyecto.
LuizLoyola

13

En mi caso, utilizo mi nombre de host para actualizar el archivo / etc / hosts.

vi /etc/hosts

y agregue su nombre de host en la última línea.

127.0.0.1 myHostName.com

para conectar mi servidor,

ng serve -o

Se produjo un error al conectarse a myHostName.com:4200 .

entonces, me gustó esto,

ng serve --host 0.0.0.0 --disableHostCheck true

Reconectando a myHostName.com:4200 :)


1
esto funcionó para mí ng serve --host 0.0.0.0 --disableHostCheck true. gracias @CookAtRice
Vinay Pandya

11

Necesita ejecutar lo siguiente:

ng serve --port 8080 --publicHost 123.34.56.78 // your server ip or host name.

Funciona para mi.


ng serve --port 8080 --publicHost 0.0.0.0
Nitin.

8

Usar el siguiente comando funciona para mí.

ng serve --host 0.0.0.0 --port 8080  --public ipAddress

1
Funciona. Pero, ¿dónde puedo encontrar la explicación sobre la opción '--public' en línea? Solo descubrí la opción '--public-host'
niaomingjian

8

En angular.json, agregue lo siguiente en arquitecto -> servir -> opciones

"disableHostCheck": true

Obtuve la respuesta de esta página de problemas de Github


1
Solo quiero señalar que esto resuelve el problema de la ejecución local en la máquina. No estoy seguro de si lo resuelve para Cloud9 según la pregunta original de OP anterior.
Tom Doe

Esta es la solución correcta y limpia si desea habilitarla en todos ng serve(y probablemente lo desee en desarrollo)
jowey

6

Me enfrentaba al mismo error después de implementar mi aplicación angular en la instancia AWS EC2 que tiene una imagen bitnami. Luego lancé mi aplicación con el siguiente comando y funcionó bien.

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true

6

Use el siguiente comando que me funciona para Angular CLI: 6.0.7

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck

4

Probado en la siguiente versión de Angular y servidor Amazon.

Angular CLI: 6.0.8
Node: 8.11.3
OS: linux x64
Angular: 5.2.8

Las opciones del comando ng se han cambiado, ahora use en configurationlugar de env. El comando que funcionó para mí es

 ng serve --configuration=dev  --port 4009 --host 0.0.0.0 --publicHost myhost.com

Nunca lo use --disable-host-checken un servidor público. Angular te advertirá si usas esto. Puede funcionar, pero es un problema de seguridad grave. Recibirá este mensaje si usa esa bandera.

ADVERTENCIA: ejecutar un servidor con --disable-host-check es un riesgo de seguridad. Consulte https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a para obtener más información.

Por favor, tómese un tiempo para leer ese artículo que vale la pena leer.


esto funcionó para mí, pero era necesario incluir el subdominio exacto utilizado en el navegador para el host público:ng serve --host 0.0.0.0 --public-host sub.myhost.com
Cel

3

En realidad, esto se resolvió en uno de los comentarios del video de youtube gracias a Mateusz Sawa

Vaya aquí para comprobarlo.

- especificar un host en package.json ya no funciona -

solo para tener en cuenta que no es necesario usar el comando que se usó en el video, las siguientes instrucciones son suficientes para que la aplicación funcione con el angular-clidesarrollo regular

primero necesitas encontrar los hosts en la carpeta etc /

escriba cd ..en la consola hasta llegar a la raíz de la máquina linux y verifique siempre con lslo que se enumera

si ve el archivo de hosts , entonces está en la ubicación correcta y luego lo usa sudo vi hostspara editarlo

agregue la línea debajo de todas las direcciones IP "0.0.0.0 yourworkspace-yourusername.c9users.io " (sin comillas, por supuesto :-))

también en package.json cambie "start": "ng serve -H yourworkspace-yourusername.c9users.io "

entonces solo necesita ir a la carpeta de la aplicación e iniciar la aplicación en la terminal con npm start

Lo comprobé ahora y funcionó


2

Usar el siguiente comando con la última versión de Angular CLI funciona para mí.

ng serve --host 0.0.0.0 --public-host <workspace>-<username>.c9users.io

2

A continuación, ambas soluciones funcionarán. En línea de comando:

ng serve --public --host yourip --port yourportnumber

ng serve --host 0.0.0.0 --port yourport --disableHostCheck true


1

Tengo el mismo error. La opción pública resolvió el problema para mí como a continuación:

ng serve --host 0.0.0.0 --port 8080 --live-reload-port 8081 --public $C9_HOSTNAME

1

ng serve --host 0.0.0.0 --port 1234 --public-host mydomain.com

Esto funciona para mi.



0

Simplemente debe cambiar 0.0.0.0 a su dirección IP local como 192.168.1.42 y debería funcionar.

ng serve --host 192.168.1.42

0

La cuestión es que solo puede acceder al enlace que haya especificado en el parámetro --public. En mi caso, proporcioné la dirección IP en --public e intento acceder a ella con el dominio que registré con esa IP. Pero ng lo vincula para el único host proporcionado en --public.

Para resolver este problema, que suministré un parámetro más: disable-host-check. Comando completo:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

Para saber más, haga clic aquí.


0

Recibí este error al intentar acceder a nuestra aplicación usando la localtunnelutilidad.

La sugerencia de @tarn (de un comentario sobre la respuesta aceptada) de agregar --disableHostCheck trueal ng servecomando funcionó.


0

Aquí hay una solución si alguien todavía está atrapado en el invalid host headerproblema:

Ejecutarlo ng ejectcreará el webpack.config.js. Corre npm installsi te lo pide. Añadir a continuación "disableHostCheck":truea devServer en webpack.config.js. Como abajo:

"devServer": {
    "historyApiFallback": true,
    "disableHostCheck" : true //<-- add this line
  }

Luego, en package.jsonla startopción de cambio de archivo de ngesta manera

"start": "webpack-dev-server --host 0.0.0.0 --port YOURPORT --public YOURIP:YOURPORT"

Ahora ejecuta el angular con el npm startcomando. Eso es.


0

gracias por todas las soluciones, --disable-host-check funciona para mí, pero no entiendo por qué tengo que usar esa solución, por qué no puedo servir como cualquier otra aplicación nueva.


-1

Dale una oportunidad

ng serve --host <private IP> --port <host port> --public-host <public IP>

-3

Cambie la línea 425 en el archivo "node_modules / webpack-dev-server / lib / Server.js" de falso a verdadero. es decir,

Antes: devuelve falso;

Actualizado: devuelve verdadero;


Agrega alguna descripción más.
Mathews Sunny

no debería estar en contacto con los proveedores de nodos
Pablo W.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.