"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

Olejs
fuente
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
Rodolfo Díaz
fuente
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
31

Necesitas especificar el host

ng serve --port 8080 --host 123.34.56.78
Adetiloye Philip Kehinde
fuente
La solución anterior también podría funcionar, pero esto es lo que necesitaba.
Teddy Markov
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.

kegliz
fuente
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
Nelson Céspedes
fuente
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 :)

CocinarArroz
fuente
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.

Nitin.
fuente
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
Devesh Vyas
fuente
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

ruwan800
fuente
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
Manish Bansal
fuente
6

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

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck
Eastbrook
fuente
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.

Krishnadas PC
fuente
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ó

Vlastimir Radojevic
fuente
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
Ben Hanna
fuente
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

pa1 Raju
fuente
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
Lacónico
fuente
1

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

Esto funciona para mi.

Ethan Liew
fuente
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
MatiusDesarrollo
fuente
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í.

Shubham
fuente
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ó.

Mark Meuer
fuente
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.

susheel
fuente
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.

meol
fuente
-1

Dale una oportunidad

ng serve --host <private IP> --port <host port> --public-host <public IP>
marco
fuente
-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;

Avinash Kancharla
fuente
Agrega alguna descripción más.
Mathews Sunny
no debería estar en contacto con los proveedores de nodos
Pablo W.