内容混合:位于“域”的页面已通过HTTPS加载,但在Angular中请求了不安全的HTTP端点

时间:2019-01-31 05:13:34

标签: node.js angular https mixed-content

我在端口4200上使用具有 SSL 的域部署了 angular 应用,该域与同一服务器和端口3000上的API通信。现在的问题是当我将BASE_URL用作HTTP的IP,它可以正常工作,但是在HTTP上时,它将混合内容HTTPS转换为HTTP错误。我也尝试了proxy-config方法,但是没有用。是否可以通过本地IP(127.0.0.1)而不是服务器IP与同一服务器通信? 已在API端(Node.js)上启用了CORS

Mixed-Content: the page at 'domain' was loaded over HTTPS, but requested an insecure HTTP endpoint in Angular

1 个答案:

答案 0 :(得分:0)

AFAIK,我认为始终会阻止从https URL加载http API。

如果您不介意重构代码以允许可配置的api端点,而不是始终使用http://localhost:3000。您将有几种选择将您的http API转换为HTTPS。

  1. 您可以尝试ngrok。它使您可以将http服务转换为https,而无需设置Web服务器,证书...等。

    在免费版本将不会有稳定的域名。它每次开始新ngrok会议时间会有所不同。只需将会话保留尽可能长的时间,这样就不必担心频繁更改名称。恕我直言,这应该足以进行开发。

  2. 您还可以为API设置自签名证书。如果您的API服务器不支持HTTPS模式,则必须安装可以处理HTTPS请求并将其代理到api的网络服务器。

    使用docker可以使安装非常容易。证书有点复杂,但是网上有一些指南。

  3. 或者,您可以在HTTP模式下运行Angular服务器。它应该解决的警告,但更危险的开发环境与生产环境,这可能会带来部署时你惊喜太大的不同。因此,建议不要这样做。