"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

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

Sie müssen den Host angeben

ng serve --port 8080 --host 123.34.56.78
Adetiloye Philip Kehinde
quelle
Die obige Lösung könnte auch funktionieren, aber das ist es, was ich brauchte.
Teddy Markov
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.

Kegliz
quelle
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
Nelson Cespedes
quelle
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 :)

CookAtRice
quelle
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.

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

Die Verwendung des folgenden Befehls funktioniert für mich.

ng serve --host 0.0.0.0 --port 8080  --public ipAddress
Devesh Vyas
quelle
1
Es klappt. Aber wo kann ich die Erklärung zur Option '--public' online finden? Ich fand nur die Option '--public-host' heraus
niaomingjian
8

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

"disableHostCheck": true

Ich habe die Antwort von dieser Github-Problemseite erhalten

ruwan800
quelle
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
Manish Bansal
quelle
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
Eastbrook
quelle
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.

Krishnadas PC
quelle
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

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

pa1 Raju
quelle
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
Lakonisch
quelle
1

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

Das funktioniert bei mir.

Ethan Liew
quelle
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
MatiusEntwicklung
quelle
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

Shubham
quelle
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.

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

Susheel
quelle
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?

Meol
quelle
-1

Probieren Sie es aus

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

Avinash Kancharla
quelle
Fügen Sie eine weitere Beschreibung hinzu.
Mathews Sunny
Sie sollten nicht Knotenanbieter berühren
Pablo W.