腾讯地图WebService API 和 CORB的误会
最近业务开发中,涉及到了腾讯地图API 、 跨域 、 CORB。虽然最后的结果方法很简单,
但是觉得这个解决问题的过程,还是值得记录一下的。
业务内容如下:
- 1.我根据JS-SDK,配置好后端返回的签名、随机字符串、时间戳、appId,然后使用wx.getLocation拿到经纬度
(签名是根据这4个参数算出来 noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url)
- 2.获取经纬度后,根据经纬度拿到当前所属省份。 这个需要腾讯地图的WebService API,就会这里遇到的问题...
- 3.之后就是拿着省份,去请求后端的php接口,获取该省份对应的门店啦。
调用腾讯地图WebService API需要跨域
这个很好理解。那么怎么做呢,无非是
- CORS。 因为是第三方API,没法设置header,所以pass
- JSONP
- 服务端代理
服务端代理,我觉得肯定可以,但是前后端分离,不想麻烦后端大哥了,就想用JSONP来跨域,
但是一直提示CORB的这个限制
于是我就研究了一圈
CORB是啥
CORB如何触发
CORB触发了大概有什么表现。
详细的可以看这大哥的文章 https://segmentfault.com/a/11...
简单说CORB会显示src资源的获取。这里触发了CORB是因为返回了response header的content-type是json
满足了触发条件,就导致返回的数据的body被覆盖为null
但是这里解决方案其实就是,想用jsonp需要设置参数 output: jsonp
就这样一个问题,折腾了一圈,哭笑不得😂
现在想想其实我用jsonp,腾讯返回给我json对象,我第一时间就应该想到这个格式不对的
这个json格式应该是给服务端代理,请求接口用的
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。