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

如何阻止Fetch请求localhost时自动重定向至HTTPS?

问题原因

这是浏览器的**自动升级不安全请求(Upgrade Insecure Requests)**机制导致的:当当前页面运行在HTTPS环境下时,浏览器会自动将页面内发起的所有HTTP请求强制升级为HTTPS请求,以此规避混合内容带来的安全风险——哪怕你在代码里明确写的是http://localhost:105,浏览器也会偷偷替换成https://localhost:105,而你的本地服务并未配置HTTPS,因此出现SSL协议错误。

而在http://localhost:105/hello/页面里执行代码正常,是因为当前页面本身就是HTTP环境,不存在混合内容的安全限制,浏览器不会触发请求升级。

解决方法

1. 标记本地HTTP服务为安全来源(Chrome专属)

适合开发环境快速解决:

  • 在Chrome地址栏输入 chrome://flags/#unsafely-treat-insecure-origin-as-secure
  • 启用该选项,在输入框中添加 http://localhost:105
  • 重启Chrome后,浏览器会将这个HTTP origin视为安全来源,不再强制升级请求

2. 禁用HTTPS页面的请求升级策略

如果你能控制那个HTTPS页面的代码,可以通过内容安全策略(CSP)明确禁止请求升级:

  • 在页面头部添加meta标签:
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests 'none';">
    
  • 或者通过后端给HTTPS页面返回响应头:
    Content-Security-Policy: upgrade-insecure-requests 'none';
    

3. 清除HSTS缓存(如果存在)

如果浏览器之前曾对localhost:105记录过HSTS(HTTP严格传输安全)策略,也会强制跳转HTTPS:

  • 在Chrome地址栏输入 chrome://net-internals/#hsts
  • 找到「Delete domain security policies」,输入localhost:105后点击「Delete」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:10:26