为何浏览器自动将HTTP请求转为HTTPS?Express部署问题求助
解决Chrome自动将HTTP资源转为HTTPS的问题
以下是几个直接可行的解决方案:
1. 使用相对路径引用资源
把硬编码的HTTP地址改成相对路径,让资源请求自动跟随页面的协议:
<script type="module" src="/buildjs.js"></script> <link rel="stylesheet" href="/buildcss.css">
这样不管页面是HTTP还是HTTPS访问,资源都会用相同的协议请求,从根源避免协议不匹配的问题。
2. 清除Chrome的HSTS缓存
如果该EC2实例IP曾被浏览器标记为强制使用HTTPS(比如之前配置过HTTPS后又切换回HTTP),Chrome会自动触发跳转。可以手动清除缓存:
- 在Chrome地址栏输入
chrome://net-internals/#hsts - 找到「Delete domain security policies」区域,输入你的实例IP
51.20.7.73,点击「Delete」 - 重启浏览器后重新访问页面
3. 关闭Chrome的自动HTTPS升级功能
这是本地临时解决办法:
- 打开Chrome设置,搜索「HTTPS」
- 找到「自动将不安全的网站升级为HTTPS」选项,关闭它
4. 检查Express应用的响应头
如果你的Express应用配置了Strict-Transport-Security(HSTS)头,会强制浏览器使用HTTPS。检查代码中是否有类似以下的设置,如果有,暂时注释掉:
// 若存在此行则注释掉 // res.setHeader('Strict-Transport-Security', 'max-age=31536000');
内容的提问来源于stack exchange,提问作者Shlok Jain
相关产品推荐
相关产品推荐

