运行Angular/cli开发服务器c9.io时出现"无效的主机头"

Ole*_*ejs 54 c9.io angular-cli angular

当前命令: ng serve --host --public $IP:$PORT

我的网站上的结果:

无效的主机标头

小智 74

--disable-host-check如果您需要从Cloud9运行,该标志可以正常工作.

我使用以下命令:

ng serve --open --host $IP --port $PORT --disable-host-check
Run Code Online (Sandbox Code Playgroud)


ruw*_*800 35

在 angular.json 中,在architect -> serve -> options下添加以下内容

"disableHostCheck": true
Run Code Online (Sandbox Code Playgroud)

从这个Github 问题页面得到了答案

  • @JellicleCat 在 **架构师 -> 服务 -> 配置 -> 生产**下设置 `"disableHostCheck": false` (4认同)
  • 有没有办法只为开发环境配置这个? (2认同)

Ade*_*nde 25

您需要指定主机

ng serve --port 8080 --host 123.34.56.78
Run Code Online (Sandbox Code Playgroud)


小智 19

看到这个问题

node_modules/webpack-dev-server/lib/Server.js(第425 行)中编辑以下行 ,更改为:

return true;
Run Code Online (Sandbox Code Playgroud)

我正在使用cloud9 IDE然后运行:ng serve --port 8080 --host 0.0.0.0.现在工作正常.

  • 你可以通过追加--disableHostCheck来运行没有编辑代码运行--host 0.0.0.0 --port 8080 --disableHostCheck true (25认同)
  • 更改node_modules/webpack-dev-server/lib/Server.js中的以下行:if(this.disableHostCheck)返回true; 改变为真; (3认同)
  • 不是操纵节点模块内容的最佳实践 (3认同)
  • 运行```ng serve --host 0.0.0.0 --disable-host-check``` (3认同)

Coo*_*ice 15

就我而言,我使用我的主机名来更新 /etc/hosts 文件。

vi /etc/hosts
Run Code Online (Sandbox Code Playgroud)

并在最后一行添加您的主机名。

127.0.0.1 myHostName.com
Run Code Online (Sandbox Code Playgroud)

连接我的服务器,

ng serve -o
Run Code Online (Sandbox Code Playgroud)

连接到myHostName.com:4200出错

所以,我喜欢这个,

ng serve --host 0.0.0.0 --disableHostCheck true
Run Code Online (Sandbox Code Playgroud)

重新连接到myHostName.com:4200 :)


小智 8

使用以下命令对我有用.

ng serve --host 0.0.0.0 --port 8080  --public ipAddress
Run Code Online (Sandbox Code Playgroud)


Nit*_*agi 7

您需要运行以下命令:ng serve --port 8080 --publicHost 123.34.56.78 (您的服务器IP或主机名).适合我.


Kri*_* PC 7

在以下版本的 Angular 和 Amazon 服务器上进行了测试。

Angular CLI: 6.0.8
Node: 8.11.3
OS: linux x64
Angular: 5.2.8
Run Code Online (Sandbox Code Playgroud)

ng 命令选项已更改,现在configuration使用env. 对我有用的命令是

 ng serve --configuration=dev  --port 4009 --host 0.0.0.0 --publicHost myhost.com
Run Code Online (Sandbox Code Playgroud)

--disable-host-check切勿在公共服务器上使用。如果你使用这个,Angular 会警告你。它可能有效,但这是一个严重的安全问题。如果您使用该标志,您将收到此消息。

警告:使用 --disable-host-check 运行服务器存在安全风险。 有关更多信息,请参阅 https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a 。

请花一些时间阅读那篇值得一读的文章。


小智 7

这对我有用:

ngrok http --host-header=rewrite PORT
Run Code Online (Sandbox Code Playgroud)

例如 :

ngrok http --host-header=rewrite 4200
Run Code Online (Sandbox Code Playgroud)


Met*_*bre 7

请不要将该--disable-host-check标志用于开发服务器!

这是一个主要的安全问题:某些恶意代码可以代表您请求您的开发服务器并获得响应。问题是开发服务器还会发送应用程序的源代码,因此基本上,如果您使用该标志,您就可以访问正在构建的应用程序的代码。

试试这个:

ng serve --public-host my.dev.host.com
Run Code Online (Sandbox Code Playgroud)

更详细的信息在这里:webpack-dev-server/middleware security issues


Man*_*sal 6

在具有bitnami映像的AWS EC2实例上部署我的角度应用程序后,我遇到了同样的错误.然后我用下面的命令启动我的应用程序,它工作正常.

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true
Run Code Online (Sandbox Code Playgroud)


小智 6

ng服务--主机0.0.0.0--端口1234--公共主机mydomain.com

这对我有用。


sco*_*chy 6

除了@ruwan800的回答之外,最好始终启用主机检查。这可以防止使用DNS 重新绑定的攻击。

https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a

要解决您的问题,请检查您是否具有对主机 IP 的完全访问权限。这是一个可能的原因。

如果这不能解决您的问题,那么您可以在角度配置中禁用主机检查,风险自负。不过,我建议您仅对本地计算机执行此操作。

如果您选择这样做,只需在angular.json.
也就是说,在architect -> serve -> configurations -> development,设置disableHostCheck: true

喜欢:

"architect": {
  //...
  "serve": {
    //...
    "configurations": {
      //...
      "development": {
       //...
       "disableHostCheck": true
      }
    },
  },
  //...
}
Run Code Online (Sandbox Code Playgroud)

这样,它仅在开发模式下运行时禁用,而不是在服务器上部署时禁用。


小智 5

对于Angular CLI,使用以下命令对我有效:6.0.7

ng serve --host 0.0.0.0 --port 8080 --disableHostCheck
Run Code Online (Sandbox Code Playgroud)