问题整理:网商银行客户列表 Excel 下载失败
问题描述
在网商银行企业网银 云资金 → 招商加盟助手 → 客户列表 页面,点击"下载客户列表 Excel"按钮后,会短暂弹出一个新窗口,随即自动关闭,文件无法下载成功。
排查思路与过程
第一步:确认接口本身是正常的
接口 ecgw_FranchiseRecordFacade_downloadApplyRecord.json 返回了 code: 200,响应体里包含了一个完整的阿里云 OSS 临时下载链接(downloadUrl),说明后端逻辑没有问题,文件已经生成。
第二步:排查弹窗拦截
新窗口"一闪而过"的表现,首先怀疑是 Chrome 的弹窗拦截机制在起作用。于是在 Chrome 设置 → 弹出式窗口和重定向 → 允许列表中,依次添加了:
b.mybank.cnbkcloudfunds.mybank.cnfluxfilefactory.alicdn.com
添加后重新测试,新窗口依然一闪而过,下载仍然失败,说明弹窗拦截不是根本原因。
第三步:确认 OSS 链接本身可用
将接口响应中的 downloadUrl 手动复制到浏览器地址栏访问,文件可以正常下载,说明 OSS 链接有效,问题出在浏览器对这个链接的处理方式上。
第四步:发现根本原因——混合内容拦截(Mixed Content)
页面本身是 https://bkcloudfunds.mybank.cn(HTTPS),但接口返回的 downloadUrl 是 http://fluxfilefactory.alicdn.com(HTTP)。Chrome 的安全策略默认会拦截 HTTPS 页面中发起的 HTTP 请求,这正是新窗口打开后立刻被关闭的真正原因。
最终解决方案
在 Chrome 设置中,允许相关网站加载不安全内容:
- 打开
chrome://settings/content/insecureContent - 在"允许显示不安全内容"区域点击"添加",分别添加:
[*.]mybank.cn[*.]alicdn.com
- 保存后,回到页面重新点击"下载客户列表 Excel"按钮,文件即可正常下载
问题的本质
这是系统的 Bug——后端生成的 OSS 下载链接使用了 http:// 而非 https://,导致在 HTTPS 页面中触发了浏览器的混合内容拦截。正确的修复方式是由开发方将 downloadUrl 改为 https:// 协议,或在 OSS 配置中开启 HTTPS 访问,从根本上消除混合内容问题。