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

Mixed Content报错无法定位不安全资源 控制台与Network面板信息不符

排查思路
  • 优先排查代码硬编码问题:全局检索项目中所有接口地址配置,包括请求库baseUrl、单个接口的路径拼接逻辑,是否存在写死http://api.yhat.pub的情况。浏览器混合内容拦截在请求发起瞬间触发,如果原始请求地址是http,哪怕后续有301/302跳转至https,也会先触发拦截。Network面板默认只会展示最终成功发出的https请求,因此会出现“能看到https请求但还是报错”的矛盾情况,被拦截的原始http请求不会在面板中展示。
  • 检查服务端/反向代理配置:确认api域名的反向代理(如Nginx、CDN)是否存在错误跳转逻辑,比如先跳转http再跳转https;同时检查反向代理是否正确传递了X-Forwarded-Proto请求头,避免后端服务错误识别请求协议,返回带http前缀的资源地址。
  • 检查页面安全配置:查看Flutter Web的web/index.html文件中是否有异常的Content-Security-Policy配置,或者遗漏了不安全请求升级的相关规则。
解决方案
  • 将所有代码中硬编码的http接口地址统一替换为https,不要使用//api.yhat.pub这类协议相对地址,避免特殊场景下被错误解析为http协议。
  • 在web/index.html的head标签中加入强制升级不安全请求的meta规则,浏览器会自动把页面内所有http请求升级为https发起:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
  • 为api域名配置HSTS规则,强制浏览器后续对该域名的所有请求都直接使用https,不需要再走服务端跳转。以Nginx配置为例:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 强制所有http请求跳转至https
if ($scheme != "https") {
    return 301 https://$host$request_uri;
}
# 正确传递请求协议给后端服务
proxy_set_header X-Forwarded-Proto $scheme;
  • 临时验证可在Chrome快捷方式的目标路径后追加参数--allow-running-insecure-content,关闭混合内容拦截验证功能是否正常,再逐步排查问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:36:02