"Ungültiger Host-Header" beim Ausführen des Angular / CLI-Entwicklungsservers c9.io


84

Aktueller Befehl: ng serve --host --public $IP:$PORT

Ergebnisse auf meiner Website:

Ungültiger Host-Header


es ist das gleiche wie oben ... das gleiche Ergebnis
Olejs

Antworten:


103

Das --disable-host-checkFlag funktioniert einwandfrei, wenn Sie Cloud9 ausführen müssen.

Ich benutze den folgenden Befehl:

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

Es wird funktionieren, aber wenn Sie verwenden, erhalten --disable-host-checkSie eine Warnung in der Konsole. WARNING: Running a server with --disable-host-check is a security risk. See mittel.com/webpack/… für weitere Informationen.
Krishnadas PC

1
Diese Option ist nicht mehr verfügbar
edi


19

Siehe dieses Problem

Bearbeiten Sie die folgende Zeile in node_modules/webpack-dev-server/lib/Server.js(Zeile 425) und wechseln Sie zu:

return true;

Ich benutze Cloud9 IDE und führe dann aus : ng serve --port 8080 --host 0.0.0.0. Funktioniert jetzt gut.


27
Sie können ohne Bearbeiten von Code durch Anfügen laufen --disableHostCheck wahr ng dienen --host 0.0.0.0 --port 8080 --disableHostCheck wahr
tarn

3
Ändern Sie die folgende Zeile in node_modules / webpack-dev-server / lib / Server.js: if (this.disableHostCheck) return true; ändern, um true zurückzugeben;
Rakesh Kashyap

Sehen Sie sich dieses Angular CLI GitHub-Problem bezüglich der potenziellen Risiken von disableHostCheck an, um zu wissen, was Sie tun.
JMQ

Adetiloyes Antwort ist viel besser
Matthew Dolman

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

15

Das funktioniert bei mir:

ngrok http --host-header=rewrite PORT

zum Beispiel :

ngrok http --host-header=rewrite 4200

Nicht die Antwort, die das OP brauchte, aber danke, dass Sie sie trotzdem hinzugefügt haben. Funktioniert für ngrok-Tunneling, ohne die Projekteinstellungen zu ändern.
LuizLoyola

13

In meinem Fall verwende ich meinen Hostnamen, um die Datei / etc / hosts zu aktualisieren.

vi /etc/hosts

und fügen Sie Ihren Hostnamen in der letzten Zeile hinzu.

127.0.0.1 myHostName.com

um meinen Server zu verbinden,

ng serve -o

Beim Herstellen einer Verbindung zu myHostName.com:4200 ist ein Fehler aufgetreten .

also hat mir das gefallen,

ng serve --host 0.0.0.0 --disableHostCheck true

Wiederverbindung zu myHostName.com:4200 :)


1
Dies funktioniert für mich ng serv --host 0.0.0.0 --disableHostCheck true. danke @CookAtRice
Vinay Pandya

11

Sie müssen Folgendes ausführen:

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

Funktioniert bei mir.


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


8

Fügen Sie in angle.json unter Architektur -> Servieren -> Optionen Folgendes hinzu

"disableHostCheck": true

Ich habe die Antwort von dieser Github-Problemseite erhalten


1
Ich möchte nur darauf hinweisen, dass dies das Problem beim lokalen Ausführen auf dem Computer behebt. Ich bin nicht sicher, ob es für Cloud9 gemäß der obigen OP-Originalfrage gelöst wird.
Tom Doe

Dies ist die richtige, saubere Lösung, wenn Sie sie auf jedem aktivieren möchten ng serve(und wahrscheinlich in der Entwicklung möchten)
jowey

6

Nach der Bereitstellung meiner eckigen App auf einer AWS EC2-Instanz mit Bitnami-Image trat der gleiche Fehler auf. Dann habe ich meine App mit dem folgenden Befehl gestartet und es hat gut funktioniert.

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

6

Verwenden Sie den folgenden Befehl funktioniert für mich für Angular CLI: 6.0.7

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

4

Getestet auf der folgenden Version von Angular und Server Amazon.

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

Die Befehlsoptionen von ng wurden geändert. Verwenden Sie jetzt configurationanstelle von env. Der Befehl, der für mich funktioniert hat, ist

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

Niemals --disable-host-checkauf einem öffentlichen Server verwenden. Angular warnt Sie, wenn Sie dies verwenden. Es mag funktionieren, ist aber ein ernstes Sicherheitsproblem. Sie erhalten diese Meldung, wenn Sie dieses Flag verwenden.

WARNUNG: Das Ausführen eines Servers mit --disable-host-check ist ein Sicherheitsrisiko. Weitere Informationen finden Sie unter https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a .

Bitte nehmen Sie sich etwas Zeit, um diesen Artikel zu lesen, der es wert ist, gelesen zu werden.


Dies funktionierte für mich, aber es war notwendig, die genaue Subdomain anzugeben, die im Browser für Public-Host verwendet wurde:ng serve --host 0.0.0.0 --public-host sub.myhost.com
Cel

3

Dies wurde tatsächlich in einem der YouTube-Videokommentare dank Mateusz Sawa gelöst

Gehen Sie hier , um es zu überprüfen.

- Die Angabe eines Hosts in package.json funktioniert nicht mehr -

Nur um zu beachten, dass es nicht erforderlich ist, den im Video verwendeten Befehl zu verwenden, reichen die folgenden Anweisungen aus, damit die App bei regelmäßiger angular-cliEntwicklung funktioniert

Zuerst müssen Sie die Hosts im Ordner etc / finden

Geben Sie cd ..in der Konsole , bis Sie die Wurzel der Linux - Maschine zu erreichen und überprüfen Sie immer mit , lswas aufgeführt wird

Wenn Sie die Hosts- Datei sehen, befinden Sie sich am richtigen Speicherort und können sie dann sudo vi hostsbearbeiten

Fügen Sie die Zeile unter allen IP-Adressen " 0.0.0.0 yourworkspace-yourusername.c9users.io " hinzu (natürlich ohne Anführungszeichen :-))

Ändern Sie auch in package.json "start": "ng serve -H yourworkspace-yourusername.c9users.io "

Dann müssen Sie nur noch in den Anwendungsordner gehen und die App im Terminal mit starten npm start

habe es gerade überprüft und es hat funktioniert


2

Die Verwendung des folgenden Befehls mit der neuesten Version von Angular CLI funktioniert für mich.

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

2

Im Folgenden funktionieren beide Lösungen. In der Kommandozeile:

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

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


1

Ich habe den gleichen Fehler bekommen. Öffentliche Option gelöst Problem für mich wie unten:

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

1

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

Das funktioniert bei mir.



0

Sie sollten einfach 0.0.0.0 in Ihre lokale IP-Adresse wie 192.168.1.42 ändern und es sollte funktionieren.

ng serve --host 192.168.1.42

0

Die Sache ist, dass Sie nur auf den Link zugreifen können, den Sie im Parameter --public angegeben haben. In meinem Fall habe ich die IP-Adresse in --public angegeben und versucht, mit der Domain, die ich für diese IP registriert habe, darauf zuzugreifen. Aber ng bindet es für den einzigen in --public bereitgestellten Host.

Um dieses Problem zu lösen, habe ich einen weiteren Parameter angegeben : disable-host-check. Vollständiger Befehl:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

Um mehr zu erfahren, klicken Sie hier


0

Ich habe diesen Fehler erhalten, als ich versucht habe, mit dem localtunnelDienstprogramm auf unsere App zuzugreifen .

@tarns Vorschlag (aus einem Kommentar zur akzeptierten Antwort) --disableHostCheck true, dem ng serveBefehl etwas hinzuzufügen , hat den Trick getan.


0

Hier ist eine Lösung, wenn noch jemand im invalid host headerProblem steckt :

Führen ng ejectSie es aus, um das zu erstellen webpack.config.js. Laufen Sie, npm installwenn es fragt. Fügen Sie unten "disableHostCheck":truezu devServer in hinzu webpack.config.js. Wie unten:

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

Dann in package.jsonDateiänderungs startOption unter ngwie diese

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

Führen Sie nun den Winkel mit npm startBefehl aus. Das ist es.


0

Vielen Dank für alle Problemumgehungen. --disable-host-check funktioniert für mich, aber ich verstehe nicht, warum ich diese Problemumgehung verwenden muss. Warum kann ich nicht einfach wie jede andere neue Anwendung dienen?


-1

Probieren Sie es aus

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

-3

Ändern Sie die Zeile 425 in der Datei "node_modules / webpack-dev-server / lib / Server.js" von false in true. dh

Vorher: return false;

Aktualisiert: return true;


Fügen Sie eine weitere Beschreibung hinzu.
Mathews Sunny

Sie sollten nicht Knotenanbieter berühren
Pablo W.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.