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 本身、瓦片还是静态资源。