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

如何将Heroku上的Node.js应用从HTTPS切换为HTTP以调用HTTP协议Django API

Heroku应用无法降级为HTTP访问的说明

目前Heroku全平台已经默认对所有应用开启强制HTTPS跳转,没有提供官方配置入口可以将应用访问地址改为HTTP协议,即使手动输入HTTP地址,也会被自动重定向到HTTPS地址,你的需求无法直接实现。

你遇到的是浏览器的混合内容安全策略拦截,报错如下:

xhr.js:177 Mixed Content: The page at 'https://myapp.herokuapp.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint (API HTTP URL). This request has been blocked; the content must be served over HTTPS.

该规则是现代浏览器的默认安全策略,只要页面是HTTPS协议加载,所有前端发起的HTTP请求都会被拦截,和服务端配置无关。

可落地的解决方法
  • 最优方案:给Django API配置HTTPS
    给部署Django API的服务器配置免费的SSL证书,将API接口改为HTTPS协议访问,完全符合安全规范,没有后续兼容问题。
  • 次选方案:用Node.js服务端做请求转发
    调整前端请求逻辑:
    1. 前端不再直接调用HTTP协议的Django API,改为请求同域下的Node.js后端接口
    2. Node.js后端收到请求后,由服务端向Django API发起HTTP请求,服务端请求不受浏览器混合内容策略限制
    3. Node.js后端拿到Django返回结果后,再回传给前端即可解决拦截问题
  • 临时调试方案(仅本地自测可用)
    打开Chrome浏览器访问你的Heroku应用,点击地址栏左侧的锁形图标,进入「站点设置」,找到「不安全内容」选项,设置为「允许」,刷新页面后即可正常发起请求。该方法仅对你本地浏览器生效,其他用户访问仍然会被拦截,禁止用于生产环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:33:00