„Nieprawidłowy nagłówek hosta” podczas uruchamiania serwera deweloperskiego Angular / CLI c9.io

88

Bieżące polecenie: ng serve --host --public $IP:$PORT

Wyniki na mojej stronie:

Nieprawidłowy nagłówek hosta

Olejs
źródło
jest taki sam jak wyżej ... ten sam wynik
Olejs

Odpowiedzi:

109

--disable-host-checkFlag działa dobrze, jeśli trzeba uruchomić z Cloud9.

Używam następującego polecenia:

ng serve --open --host $IP --port $PORT --disable-host-check
Rodolfo Díaz
źródło
Będzie działać, ale jeśli użyjesz --disable-host-check, otrzymasz ostrzeżenie w konsoli. WARNING: Running a server with --disable-host-check is a security risk. See medium.com/webpack/ ... aby uzyskać więcej informacji.
Krishnadas PC
1
ta opcja nie jest już dostępna
edi
32

Musisz określić hosta

ng serve --port 8080 --host 123.34.56.78
Adetiloye Philip Kehinde
źródło
1
Powyższe rozwiązanie może też działać, ale tego właśnie potrzebowałem.
Teddy Markov
lepsze rozwiązanie
danday74
19

Zobacz ten numer

Edytuj następujący wiersz w node_modules/webpack-dev-server/lib/Server.js(wiersz 425), zmień na:

return true;

Używam Cloud9 IDE następnie uruchomić: ng serve --port 8080 --host 0.0.0.0. Teraz działa dobrze.

kegliz
źródło
27
Możesz uruchomić bez edycji kodu, dołączając --disableHostCheck true ng serv --host 0.0.0.0 --port 8080 --disableHostCheck true
tarn
3
zmień następujący wiersz w node_modules / webpack-dev-server / lib / Server.js: if (this.disableHostCheck) return true; zmień, aby zwrócić prawdę;
rakesh kashyap
Zobacz ten problem z Angular CLI GitHub dotyczący potencjalnych zagrożeń dla disableHostCheck, aby być świadomym tego, co robisz.
jmq
Odpowiedź Adetiloye jest znacznie lepsza
Matthew Dolman
3
Biegng serve --host 0.0.0.0 --disable-host-check
Ubaid Azad
15

To działa dla mnie:

ngrok http --host-header=rewrite PORT

na przykład :

ngrok http --host-header=rewrite 4200
Nelson Cespedes
źródło
Nie jest to odpowiedź, której potrzebował OP, ale i tak dziękuję za jej dodanie. Działa w przypadku tunelowania ngrok bez zmiany ustawień projektu.
LuizLoyola
13

W moim przypadku używam mojej nazwy hosta do aktualizacji pliku / etc / hosts.

vi /etc/hosts

i dodaj ostatnią linię swojej nazwy hosta.

127.0.0.1 myHostName.com

podłączyć mój serwer,

ng serve -o

Wystąpił błąd podczas łączenia się z myHostName.com:4200 .

więc zrobiłem to,

ng serve --host 0.0.0.0 --disableHostCheck true

Ponowne łączenie się z myHostName.com:4200 :)

CookAtRice
źródło
1
to działa dla mnie ng serv --host 0.0.0.0 --disableHostCheck true. dziękuję @CookAtRice
Vinay Pandya
12

Musisz uruchomić następujące:

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

Pracuje dla mnie.

Nitin.
źródło
ng służyć - port 8080 --publicHost 0.0.0.0
Nitin.
12

W angular.json dodaj następujące elementy w obszarze architekt -> służyć -> opcje

"disableHostCheck": true

Mam odpowiedź na tej stronie z problemem Github

ruwan800
źródło
1
Chcę tylko zaznaczyć, że rozwiązuje to problem z działaniem lokalnie na komputerze. Nie jestem pewien, czy to rozwiązuje to dla Cloud9 zgodnie z oryginalnym pytaniem OP powyżej.
Tom Doe
To właściwe, czyste rozwiązanie, jeśli chcesz je włączać na każdym ng serve(i prawdopodobnie chcesz to
robić
8

U mnie działa poniższe polecenie.

ng serve --host 0.0.0.0 --port 8080  --public ipAddress
Devesh Vyas
źródło
1
To działa. Ale gdzie mogę znaleźć wyjaśnienie dotyczące opcji „--publiczne” w Internecie? Dowiedziałem się tylko o opcji „--public-host”
niaomingjian
6

Napotkałem ten sam błąd po wdrożeniu mojej aplikacji kątowej na instancji AWS EC2 z obrazem bitnami. Następnie uruchomiłem aplikację za pomocą poniższego polecenia i działało dobrze.

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true
Manish Bansal
źródło
6

Użyj poniższego polecenia, które działa dla mnie dla Angular CLI: 6.0.7

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck
Eastbrook
źródło
4

Testowane na poniższej wersji Angulara i serwera Amazon.

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

Opcje polecenia ng zostały zmienione, teraz używaj configurationzamiast env. Polecenie, które działało dla mnie, to

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

Nigdy nie używaj --disable-host-checkna serwerze publicznym. Angular ostrzeże Cię, jeśli tego użyjesz. Może działać, ale jest to poważny problem z bezpieczeństwem. Otrzymasz tę wiadomość, jeśli użyjesz tej flagi.

OSTRZEŻENIE: uruchomienie serwera z opcją --disable-host-check stanowi zagrożenie bezpieczeństwa. Więcej informacji można znaleźć pod adresem https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a .

Poświęć trochę czasu na przeczytanie tego artykułu, który warto przeczytać.

Krishnadas PC
źródło
to działało dla mnie, ale konieczne było uwzględnienie dokładnej subdomeny używanej w przeglądarce dla hosta publicznego:ng serve --host 0.0.0.0 --public-host sub.myhost.com
Cel
3

Zostało to faktycznie rozwiązane w jednym z komentarzy wideo na youtube dzięki Mateuszowi Sawie

Przejdź tutaj, aby to sprawdzić.

- Określenie hosta w package.json już nie działa -

wystarczy zauważyć, że nie jest konieczne użycie polecenia, które zostało użyte w filmie, wystarczą poniższe instrukcje, aby aplikacja działała przy regularnym angular-cliprogramowaniu

najpierw musisz znaleźć hosty w folderze etc /

wpisz cd ..w konsoli, aż dotrzesz do katalogu głównego komputera z systemem Linux i zawsze sprawdzaj, lsco jest na liście

jeśli widzisz plik hosts , to jesteś we właściwej lokalizacji, a następnie użyjsudo vi hosts aby go edytować

dodaj wiersz poniżej wszystkich adresów IP „0.0.0.0 twoja przestrzeń robocza- nazwa_użytkownika.c9users.io ” (oczywiście bez cudzysłowów :-))

również w package.json zmień "start": "ng serv -H yourworkspace-yourusername.c9users.io "

następnie wystarczy przejść do folderu aplikacji i uruchomić aplikację w terminalu za pomocą npm start

sprawdziłem to przed chwilą i zadziałało

Vlastimir Radojevic
źródło
2

U mnie działa poniższe polecenie z najnowszą wersją Angular CLI.

ng serve --host 0.0.0.0 --public-host <workspace>-<username>.c9users.io
Ben Hanna
źródło
2

Poniżej oba rozwiązania będą działać. W linii poleceń:

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

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

pa1 Raju
źródło
2

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

To działa dla mnie.

Ethan Liew
źródło
1

Mam ten sam błąd. Opcja publiczna rozwiązała problem dla mnie jak poniżej:

ng serve --host 0.0.0.0 --port 8080 --live-reload-port 8081 --public $C9_HOSTNAME
Lakoniczny
źródło
1

dzięki za wszystkie obejścia, --disable-host-check działa dla mnie, ale nie rozumiem, dlaczego muszę używać tego obejścia, dlaczego nie mogę po prostu służyć jak każda inna nowa aplikacja.

meol
źródło
0

Powinieneś po prostu zmienić 0.0.0.0 na lokalny adres IP, taki jak 192.168.1.42 i powinno działać.

ng serve --host 192.168.1.42
MatiusDevelopment
źródło
0

Chodzi o to, że masz dostęp tylko do linku, który podałeś w parametrze --public. W moim przypadku podałem adres IP jako publiczny i próbuję uzyskać do niego dostęp w domenie zarejestrowanej pod tym adresem IP. Ale ng wiąże go z jedynym hostem dostarczonym w --public.

Aby rozwiązać ten problem, dostarczany jeden parametr: disable-host-check. Pełne polecenie:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

Aby dowiedzieć się więcej, kliknij tutaj

shubham
źródło
0

Otrzymałem ten błąd podczas próby uzyskania dostępu do naszej aplikacji za pomocą localtunnelnarzędzia.

Sugestia @tarn (z komentarza do zaakceptowanej odpowiedzi) dodania --disableHostCheck truedo ng servepolecenia załatwiła sprawę .

Mark Meuer
źródło
0

Oto rozwiązanie, jeśli ktoś nadal tkwi invalid host header problemie:

Uruchomienie ng ejectspowoduje utworzenie webpack.config.js. Biegnij, npm installjeśli prosi. Dodaj poniżej "disableHostCheck":truedo devServer w webpack.config.js. Jak poniżej:

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

Następnie w opcji package.jsonzmiany pliku startponiżej w ngten sposób

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

Teraz uruchom kątownik z npm startpoleceniem. Otóż ​​to.

susheel
źródło
-1

Daj temu szansę

ng serve --host <private IP> --port <host port> --public-host <public IP>
marco
źródło
-3

Zmień wiersz 425 w pliku „node_modules / webpack-dev-server / lib / Server.js” z false na true. to znaczy,

Przed: return false;

Zaktualizowano: powrót prawda;

Avinash Kancharla
źródło
Dodaj więcej opisu.
Mathews Sunny
nie należy dotykać dostawców węzłów
Pablo W.