You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular应用如何阻止HTTP请求被自动重定向至HTTPS

问题原因

你配置的<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">本身作用就是强制将页面下所有HTTP请求自动升级为HTTPS,属于完全配反了方向,没生效只是因为你标签写法漏了content属性的闭合引号,就算写对了也只会加重请求被升级的问题。
HTTPS站点下发起的HTTP请求被自动改协议,通常是多层规则共同作用的结果,按以下步骤排查解决即可:


排查解决步骤
  • 第一步:删除错误配置
    直接删掉index.html里加的上述CSP meta标签,同时检查你部署Angular应用的Web服务器(Nginx/Apache)、CDN、WAF的响应头配置,删掉返回头里Content-Security-Policy字段携带的upgrade-insecure-requests规则。
  • 第二步:清理浏览器侧强制HTTPS规则
    主流浏览器默认开启HTTPS优先模式,同时会缓存站点的HSTS策略强制跳HTTPS:
    1. 进入对应站点的浏览器权限设置,关闭「始终使用安全连接」选项
    2. Chrome/Edge可访问chrome://net-internals/#hsts,在Delete domain security policies模块输入你的Angular应用域名,清除本地HSTS缓存
      注意:如果你的域名在浏览器内置的HSTS预加载列表中,这步操作无效,无法绕过浏览器侧的强制升级
  • 第三步:排查中间代理层升级规则
    检查Angular应用前置的反向代理、CDN、网关配置,关闭「HTTP请求自动升级HTTPS」「强制HTTPS跳转」类的开关,排除中间层改写请求协议的情况。
  • 第四步:校验Angular项目配置
    1. 检查生产环境配置文件environment.prod.ts里的API地址前缀,必须写明确的http://开头的绝对路径,不要用相对路径,也不要用//xxx这类省略协议的相对协议地址(这类地址会自动继承当前页面的HTTPS协议)
    2. 全局搜索项目代码,检查自定义Http拦截器里有没有写自动替换请求协议为HTTPS的逻辑。
  • 第五步:(推荐永久方案)给后端HTTP服务配置HTTPS
    所有现代浏览器都对混合内容有严格限制:HTTPS站点下发起的HTTP接口请求属于活动混合内容,就算你绕开了所有自动升级规则,浏览器也会直接拦截请求,控制台抛出Mixed Content错误,这个是浏览器安全基线的硬限制,不可能要求所有访问用户手动修改浏览器安全设置来绕过。给目标后端服务配置免费SSL证书走HTTPS协议,是唯一无兼容问题的解决方式。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:48:18