如何将 Angular 4 localhost 提供给 ngrok?

Posted

技术标签:

【中文标题】如何将 Angular 4 localhost 提供给 ngrok?【英文标题】:How can I serve Angular 4 localhost to ngrok? 【发布时间】:2018-01-10 00:53:33 【问题描述】:

我想使用 ngrok 使我的本地开发可用于需要使用 webhook 的外部 api,但是当我在端口 4200 上运行 ngrok 时,当我尝试从 ngrok 访问该站点时,Angular 给了我Invalid Host Header关联。有谁知道我如何使用 ngrok 从本地主机外部访问角度 ng 服务?

谢谢

【问题讨论】:

【参考方案1】:

我设法通过了无效的主机标头,如果您执行ng serve --disable-host-check,您将不会收到该错误,它应该在 ngrok 中运行。

编辑:我一直在尝试将 ngrok 用于远程 selenium 网格,但如果有人有任何想法告诉我,我无法让它工作

【讨论】:

我运行了 ngrok: "ngrok http 4200" 然后在另一个 shell 中运行 "ng serve --disable-host-check" 如你所说,现在你可以访问 ngrok 网址。谢谢指点【参考方案2】:

我尝试通过禁用主机检查选项在 prod 环境中运行 ng serve 并且它起作用了,

Cmd1:

ng serve --prod --host 0.0.0.0 --disable-host-check。 并尝试将 ngrok 与以下解决方案一起使用

Cmd2:

ngrok http 4200 -host-header="localhost:4200"

【讨论】:

今天(2019 年 9 月 5 日)这是有效的:cmd1 只是 ng serve cmd2 ngrok http 4200 -host-header="localhost:4200"(websockets 也可以很好地使用这个配置)【参考方案3】:

这适用于单行代码:

ngrok http 4200 -host-header="localhost:4200"

【讨论】:

【参考方案4】:

它正在工作,但它在控制台中抛出错误Invalid Host/Origin header + [WDS] Disconnected!...

【讨论】:

【参考方案5】:

小提醒,我自己面临的一个问题。对我来说,Diego Santa Cruz Mendezú 的解决方案奏效了。但它只在我的 Google Chrome 'Incognito' 浏览器中对我有用,因为我的所有扩展程序都被禁用了!只是提醒一下,控制台错误也可能是扩展错误,因此该网站可能不会(正确)显示,这就是我身边的情况。

【讨论】:

以上是关于如何将 Angular 4 localhost 提供给 ngrok?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 4:如何访问本地 json?

Angular 4 和 Laravel 5.4 的刷新路由问题

带有 Angular 的 Codeigniter 4 API:“http://localhost:4200”已被 CORS 策略阻止

将 Angular 连接到 Spring 的 CORS 错误(localhost 8080 <--> localhost 4200)

如何在 DRF 中使用身份服务器 4 验证 JWT 令牌?

如何从 angular localhost:4200 调用 spring security azure AD localhost:8080。天蓝色调用中的错误