uBlock Origin拦截sentry、谷歌地图XHR请求报ERR_BLOCKED_BY_CLIENT如何解决
修复方案
谷歌地图gen_204请求拦截修复
该请求是谷歌地图内置的CSP兼容性测试空请求,本身没有实际业务功能,被拦截完全不会影响地图的加载、交互等核心能力,可根据需求选择对应方案:
- 直接忽略报错:如果不需要做特殊的CSP适配,可直接在前端全局错误监听、错误上报逻辑中过滤该类报错,匹配规则为请求路径包含
maps.googleapis.com/maps/api/mapsjs/gen_204且错误码为ERR_BLOCKED_BY_CLIENT即可,不需要额外修改地图逻辑 - 关闭CSP测试:初始化谷歌地图JS资源时,在URL参数中添加
csp=nonce-<你页面的CSP nonce值>,明确指定CSP校验参数后谷歌地图会自动跳过自动CSP测试,不会再发起该请求 - 全局捕获吞掉报错:可在全局的
error和unhandledrejection事件监听回调中,匹配到对应特征的报错直接阻止默认行为,避免控制台抛出无意义报错
Sentry上报请求拦截修复
Sentry的上报域名被uBlock等广告拦截器默认归为用户行为追踪类域名,会被规则批量拦截,可选择以下方案处理:
- 配置反向代理(最稳妥):在你的站点域名下新增一个反向代理路径,比如
/sentry/report,服务端配置将该路径收到的所有请求原样转发到你的Sentry上报地址https://o812912.ingest.sentry.io/api/,之后修改Sentry初始化的DSN配置,将上报域名替换为你自己的站点域名,路径对应你配置的代理路径即可,广告拦截器不会拦截同站请求 - 拦截降级处理:在Sentry的
beforeSend钩子中增加逻辑,如果检测到上报请求返回ERR_BLOCKED_BY_CLIENT错误,直接终止后续上报重试逻辑,避免重复抛出报错 - 上报前过滤:如果不要求100%的错误上报率,也可以只在错误上报逻辑中过滤掉客户端拦截类的错误,减少无效请求
内容的提问来源于stack exchange,提问作者Sakshi Mahajan
相关产品推荐
相关产品推荐

