tuqin
3 天以前 d4c8ef107ad0d0835863b21f240d44402e949584
分支
用户 tuqin <tuqin@tuqin.cn>
星期四, 十一月 5, 2026 17:09 +0800
提交者 tuqin <tuqin@tuqin.cn>
星期四, 十一月 5, 2026 17:09 +0800
提交d4c8ef107ad0d0835863b21f240d44402e949584
目录 98871543d96710b80cca67549cb93f6c2c13a27f 目录 | zip | gz
上一版本 08fdad8d691b9c68f865b7aee1d62b8a09213656 查看 | 对比
fix(map): 代理转发 Referer / Origin;诊断页增加错误来源抓取

客户复现:SDK 不报网络错误了,但弹出
「APP Referer校验失败。请检查该ak设置的白名单与访问所有的域名是否一致」(百度 error code 220)。

说明代理已生效(请求到达百度),卡在百度侧的来源校验。

服务器侧(nginx bmap-proxy.conf,9 个 location 全部覆盖):
proxy_set_header Referer $http_referer;
proxy_set_header Origin $http_origin;
nginx 默认不转发 Referer,导致百度拿不到来源 → 返回 220。

实测验证:
- 服务器本地经代理且带 Referer:SDK 874KB 正常内容
- 直接请求各 Referer 组合,B_BUSINESS_INFO 均为 business:0 / unauth:0
(说明 ak 本身未禁用,220 来自某个具体资源请求,需前端侧定位)

诊断页 bmap-test.html 新增第 4 块「错误来源抓取」:
- 重写 window.alert,捕获百度 SDK 弹出的 220 告警原文
- 包装 window.fetch,记录 /bmap-* 的 4xx/5xx 与异常
- 捕获阶段监听资源 error 事件,记录加载失败的 <img>/<script> 及 URL
用于确认 220 到底来自 SDK 本身、瓦片还是静态资源。
已修改1个文件
52 ■■■■■ 文件已修改
public/bmap-test.html 52 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史