vue引入vue-jsonp实现解决跨域(例:在项目里调用百度api/腾讯api获取定位)

第一步:

添加依赖npm install vue-jsonp --save

第二步:

在vue cli项目main.js中添加

import { VueJsonp } from ‘vue-jsonp’ // 网上很多博客引用不加{},会报错

Vue.use(VueJsonp)

百度:已知经纬度转换成地理位置

在任意.vue文件中使用

// 因为引入了vue-jsonp,所以可以直接使用this.$jsonp, Vue.use(VueJsonp)
//方法里把$jsonp赋给vue原型了:Vue.prototype.$jsonp = jsonp
this.$jsonp('https://api.map.baidu.com/geocoder/v2/?callback=renderReverse&output=json&pois=1' , {
    ak: 'ZwTVu16RLXjhW7FHDjYt5HfMnR1dhFpR',
    location: e.point.lat + ',' + e.point.lng
}).then((res)=>{
 console.log(res)
})

腾讯:直接获取经纬度及定位信息

 getAddressByIp() {
      this.$jsonp("https://apis.map.qq.com/ws/location/v1/ip?output=jsonp&key=" + 'D4MBZ-VIFKU-QWLVG-GYFOS-KWDZ2-3BF4I', {}).then(res => {
        console.log("ip>>>>>>>>>>>")
        console.log(res.result)
        if (res.status != 0) {
          this.$toast("定位异常,请稍后重试")
        } else {
          try {
            let city = res.result.ad_info.city
            let province = res.result.ad_info.province
          } catch (error) {
            this.$toast("定位失败请稍后重试")
          }
        }
      }).catch(err => {
        this.$toast.clear();
      })
    },
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值