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

时间:2017-04-28 10:09:15

标签: angular angular-cli c9.io

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

我网站上的结果:

  

无效的主机标头

24 个答案:

答案 0 :(得分:50)

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

我使用以下命令:

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

答案 1 :(得分:22)

您需要指定主机

ng serve --port 8080 --host 123.34.56.78

答案 2 :(得分:20)

请参阅this issue

  

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

return true;
     

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

答案 3 :(得分:8)

使用以下命令对我有用。

ng serve --host 0.0.0.0 --port 8080  --public ipAddress

答案 4 :(得分:6)

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

答案 5 :(得分:5)

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

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

答案 6 :(得分:4)

使用以下命令适用于Angular CLI:6.0.7

datasets: [
    {
        label: 'starts1',
        data: [0, 0, 0, 0] and so on
        backgroundColor: "rgb(255,0,0)",
    },
]

答案 7 :(得分:3)

由于 Mateusz Sawa

,这实际上是在youtube视频评论之一中解决的

转到here查看。

- 在package.json中指定主机不再起作用 -

请注意,没有必要使用视频中使用的命令,以下说明足以使应用程序使用常规angular-cli开发

首先,您需要在 etc / 文件夹中找到主机

在控制台中键入cd ..,直到到达linux计算机的根目录并始终使用ls检查列出的内容

如果您看到主机文件,而不是您在正确的位置,然后使用sudo vi hosts进行编辑

在下面添加所有IP地址的行“0.0.0.0 yourworkspace-yourusername.c9users.io ”(当然没有引号:-))

也在package.json中更改 “开始”:“ng serve -H yourworkspace-yourusername.c9users.io

然后您只需要转到应用程序文件夹并使用npm start

在终端中启动应用程序

刚刚检查过它并且有效

答案 8 :(得分:3)

在以下版本的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   有关更多信息。

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

答案 9 :(得分:2)

使用以下命令和最新版本的Angular CLI对我有用。

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

答案 10 :(得分:2)

这对我有用 ngrok http --host-header =重写端口

例如: ngrok http --host-header = rewrite 4200

答案 11 :(得分:2)

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

datetime

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

vi /etc/hosts

连接服务器,

127.0.0.1 myHostName.com

连接到 myHostName.com:4200 时发生错误。

所以,我这样使用

ng serve -o

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

答案 12 :(得分:1)

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

这对我有用。

答案 13 :(得分:1)

以下两种解决方案都有效。在命令行中:

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

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

答案 14 :(得分:1)

我得到了同样的错误。公共选项为我解决了以下问题:

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

答案 15 :(得分:0)

如果有人仍然遇到 invalid host header 问题,以下是解决方法:

运行ng eject它将创建webpack.config.js。 如果有问题,请运行npm install。 在"disableHostCheck":true中的devServer下面添加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"

现在使用npm start命令运行angular。 多数民众赞成。

答案 16 :(得分:0)

尝试使用localtunnel实用程序访问我们的应用时出现此错误。

@tarn的建议(来自对已接受答案的评论)将--disableHostCheck true添加到ng serve命令就行了。

答案 17 :(得分:0)

问题是你只能访问你在--public参数中指定的链接。就我而言,我在--public中提供了IP地址,并尝试使用我针对该IP注册的域来访问它。但ng绑定它是--public。

中提供的唯一主机

为了解决这个问题,我又提供了一个参数:disable-host-check。 完整命令:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x

了解更多信息,click here

答案 18 :(得分:0)

您应该将0.0.0.0更改为您的本地IP地址,如192.168.1.42,它应该可以正常工作。

ng serve --host 192.168.1.42

答案 19 :(得分:0)

在angular.json中,在建筑师->服务->选项

下添加以下内容
"disableHostCheck": true

从这个Github Issue Page

得到了答案

答案 20 :(得分:0)

感谢所有变通办法,--disable-host-check对我有用,但是我不明白为什么我必须使用该变通办法,为什么我不能像其他任何新应用一样使用它。 / p>

答案 21 :(得分:0)

请参阅:https://github.com/angular/angular-cli/issues/6070

使用公共标志。例如:ng serve --host <workspace>-<username>.c9users.io --public

答案 22 :(得分:-1)

试一下

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

答案 23 :(得分:-3)

将文件“ node_modules / webpack-dev-server / lib / Server.js”中的第425行从false更改为true。即

之前:返回false;

已更新:返回true;