vue jsonp 跨域调用 腾讯地图 api报错
今天帮助前端小伙伴解决了一下 jsonp 调用腾讯地图 WebService API 报错 Unexpected token : 的问题,这里记录一下解决过程 项目中使用 vue-jsonp 组件来解决跨域问题,使用流程如下 安装 jsonp npm install vue-jsonp main.js 引入 jsonp 组件 import Vue from 'vue' import VueJsonp from 'vue-jsonp' Vue.use(VueJsonp) 接口调用 const KEY =XXXXXXXXXXXXXX; //key 秘钥自己申请 let url = 'https://apis.map.qq.com/ws/geocoder/v1?&poi_options=address_format=short&get_poi=0'; let locationdata = lat+','+lng //纬度,经度 this.$jsonp(url,{ key:KEY, location:locationdata }) .then(json => { let address = json.result.address; console.log(address) //附近街道地址信息 }) .catch(err => { console.log(err) }) } 本来到了这里应该是完美无缺,开开心心的接受腾讯地图返回的信息就可以了,但是!!,出来了莫名其妙的问题,当请求接口是返回的确是 Unexpected token : 这样的错误。 问题排查 本着发现问题解决问题的程序员精神,开始了百度 ,谷歌的混合双打,依然没有找到问题的原因,只因为当时搜索的关键词为 Unexpected token : 虽然我本身不是做前端,但是我也清除这种错误一抓一大把,很难精准的把握到错误的具体位置,既然问题出现在了 jsonp 中那就了解一下 jsonp 的实现原理,和跨域原理,果然有重大发现下图中的一段话一句惊醒梦中人 ...