Chrome Canary(68.0.3409.0)处理Mapbox access_token致请求被拒求助
Mapbox access_token被Chrome Canary anonymize导致请求被拒的解决方案
我之前也碰到过Chrome Canary这类预览版浏览器的奇葩行为,尤其是涉及到敏感参数的时候,你的这个情况应该是Canary里的实验性隐私保护特性在搞鬼。
可能的原因
Chrome Canary作为测试版,会提前引入一些未稳定的隐私功能,其中就包括自动对URL里的敏感参数(比如access_token、api_key这类)进行匿名化替换,目的是防止第三方追踪,但这就误伤了正常的API请求。
解决方法
禁用Chrome Canary的参数匿名化特性
打开Chrome Canary的实验性功能页面:在地址栏输入chrome://flags/,然后搜索关键词比如URL parameter anonymization或者Anonymize sensitive URL parameters,找到对应的选项后设置为Disabled,重启浏览器后再测试。改用请求头传递access_token
Mapbox支持通过请求头来传递令牌,这样可以避开URL参数被修改的问题。把原来URL里的access_token=XXXX去掉,转而在请求的Authorization头里设置:// 示例:用fetch发送请求时添加头 fetch('https://api.mapbox.com/your-endpoint', { headers: { 'Authorization': 'Bearer YOUR_MAPBOX_ACCESS_TOKEN' } });这样浏览器就不会修改请求头里的令牌,Mapbox也能正常识别。
临时切换到稳定版Chrome测试
如果只是开发阶段的临时问题,可以先切换到Chrome稳定版或者Firefox等其他浏览器进行开发,等Canary的这个特性稳定或者调整后再用它测试。
你提到能本地轻松复现,还有对应的截图,基本可以确定是Canary的实验特性导致的,按照上面的方法应该能解决问题。
内容的提问来源于stack exchange,提问作者LiquidSky
相关产品推荐
相关产品推荐

