Angular / cli開発サーバーc9.ioを実行しているときの「無効なホストヘッダー」


回答:


103

--disable-host-checkあなたはCloud9から実行する必要がある場合にフラグが罰金を動作します。

次のコマンドを使用します。

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

動作しますが、使用--disable-host-checkするとコンソールに警告が表示されます。WARNING: Running a server with --disable-host-check is a security risk. See 詳細については、medium.com / webpack /…をご覧ください。
クリシュナダスPC 2018

1
このオプションはもう利用できません
edi 2018


19

この問題を参照してください

node_modules/webpack-dev-server/lib/Server.js(425行目)の次の行を編集し、次のよう に変更します。

return true;

cloud9 IDEを使用してから、以下を実行しますng serve --port 8080 --host 0.0.0.0。これで正常に動作します。


27
あなたは--host 0.0.0.0 --port 8080 --disableHostCheck真の奉仕アペンド--disableHostCheckによって編集コードなしで真のNGを実行することができます
タルン

3
node_modules / webpack-dev-server / lib / Server.jsの次の行を変更します。if(this.disableHostCheck)return true; trueを返すように変更します。
rakesh kashyap 2017

disableHostCheckの潜在的なリスクについては、このAngular CLI GitHubの問題を参照して、何をしているのかを確認してください。
JMQ

Adetiloyeの答えははるかに優れている
マシュー・ドルマン

3
実行ng serve --host 0.0.0.0 --disable-host-check
UbaidAzad19年

15

これは私のために働きます:

ngrok http --host-header=rewrite PORT

例えば ​​:

ngrok http --host-header=rewrite 4200

OPに必要な答えではありませんが、とにかく追加していただきありがとうございます。プロジェクト設定を変更せずにngrokトンネリングで機能します。
LuizLoyola

13

私の場合、ホスト名を使用して/ etc / hostsファイルを更新します。

vi /etc/hosts

最後の行にホスト名を追加します。

127.0.0.1 myHostName.com

サーバーに接続するには、

ng serve -o

myHostName.com:4200への接続中にエラーが発生しました

だから、私はこれが好きでした、

ng serve --host 0.0.0.0 --disableHostCheck true

myHostName.com:4200に再接続しています :)


1
これは、serve --host 0.0.0.0 --disableHostChecktrueの場合に機能します。あなた@CookAtRiceありがとう
ビナイPandya

11

以下を実行する必要があります。

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

私のために働きます。


ngが--port 8080 --publicHost 0.0.0.0サーブ
ニティンを。


8

angle.jsonで、アーキテクト->サーブ->オプションの下に以下を追加します

"disableHostCheck": true

このGithubIssueページから回答を得ました


1
これにより、マシン上でローカルに実行する際の問題が解決されることを指摘しておきます。上記のOPの元の質問に従って、Cloud9で解決するかどうかはわかりません。
Tom Doe

これは、すべてで有効にしたい場合ng serve(そしておそらく開発中にしたい場合)に適切なクリーンなソリューションです
jowey

6

bitnamiイメージを持つAWSEC2インスタンスにAngularアプリをデプロイした後、同じエラーに直面していました。次に、以下のコマンドでアプリを起動しましたが、正常に動作しました。

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

6

以下のコマンドを使用すると、AngularCLIで機能します。6.0.7

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

4

以下のバージョンのAngularとサーバーAmazonでテスト済み。

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

ngコマンドオプションが変更されました。configuration代わりにを使用してくださいenv。私のために働いたコマンドは

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

--disable-host-checkパブリックサーバーでは絶対に使用しないでください。これを使用すると、Angularは警告を表示します。動作する可能性はありますが、重大なセキュリティ問題です。そのフラグを使用すると、このメッセージが表示されます。

警告:-disable-host-checkを指定してサーバーを実行すると、セキュリティ上のリスクが発生します。詳細については、https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a を参照して ください

読む価値のある記事を読むのに少し時間がかかります。


これは私にとってはうまくng serve --host 0.0.0.0 --public-host sub.myhost.com
Cel

3

これは実際にMateuszSawaのおかげでyoutubeビデオコメントの1つで解決されました

行くここでそれをチェックアウトします。

--package.jsonでホストを指定しても機能しなくなりました-

ビデオで使用されたコマンドを使用する必要がないことに注意してください。通常のangular-cli開発を使用してアプリを機能させるには、以下の手順で十分です。

まず、etc /フォルダーでホストを見つける必要があります

cd ..Linuxマシンのルートに到達するまでコンソールに入力し、lsリストされているものを常に確認してください

あなたが見た場合、ホストのファイルを、あなたは右の場所にあり、より使いsudo vi hosts編集に

すべてのIPアドレス「0.0.0.0yourworkspace-yourusername.c9users.io」の下に次の行を追加します(もちろん引用符なし:-))

また、package.jsonで「start」を変更します:「ngserve -H yourworkspace-yourusername.c9users.io

次に、アプリケーションフォルダーに移動し、ターミナルでアプリを起動する必要があります。 npm start

今それをチェックして、それはうまくいきました


2

最新バージョンのAngularCLIで以下のコマンドを使用するとうまくいきます。

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

2

以下の両方のソリューションが機能します。コマンドラインで:

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

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


1

同じエラーが発生しました。公的オプションは私にとって以下のような問題を解決しました:

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



0

0.0.0.0を192.168.1.42のようなローカルIPアドレスに変更するだけで、機能するはずです。

ng serve --host 192.168.1.42

0

重要なのは、-publicパラメータで指定したリンクにのみアクセスできるということです。私の場合、-publicでIPアドレスを指定し、そのIPに対して登録したドメインでIPアドレスにアクセスしようとしました。ただし、ngは、-publicで提供される唯一のホストにバインドします。

この問題を解決するために、もう1つのパラメーターを指定しましたdisable-host-check。完全なコマンド:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

詳細については、ここをクリックしてください


0

localtunnelユーティリティを使用してアプリにアクセスしようとすると、このエラーが発生していました。

コマンドに追加--disableHostCheck trueするという@tarnの提案(受け入れられた回答へのコメントから)がうまくいきましたng serve


0

誰かがまだinvalid host header問題で立ち往生している場合の解決策は次のとおりです。

実行ng ejectすると、が作成されますwebpack.config.jsnpm install要求されている場合は実行します。以下"disableHostCheck":truedevServer に追加しますwebpack.config.js。以下のように:

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

次に、このようなpackage.jsonファイル変更startオプションでng

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

次に、angularwithnpm startコマンドを実行します。それでおしまい。


0

すべての回避策に感謝します。-disable-host-checkは機能しますが、なぜその回避策を使用する必要があるのか​​、他の新しいアプリケーションのように機能できないのかわかりません。


-1

これを試してみてください

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

-3

ファイル「node_modules / webpack-dev-server / lib /Server.js」の425行目をfalseからtrueに変更します。すなわち、

前:falseを返します。

更新:trueを返します。


説明を追加します。
Mathews Sunny

あなたは感動ノードベンダーすべきではない
パブロ・W.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.