腾讯地图的签名校验报错的解决方法---vue-jsonp

换了种使用腾讯地图的方式,不设置域名白名单,可以不用反复再后台添加白名单了,直接使用get请求的jsonp方式,遇到了一些问题,现在记录下来,点击地图用经纬度换取地址信息

在这里插入图片描述

 "vue-jsonp": "^2.0.0",
import md5 from 'md5'
import { jsonp } from 'vue-jsonp'

const clickHandler = async function (evt) {
    var lat = evt.latLng.getLat().toFixed(6);
    var lng = evt.latLng.getLng().toFixed(6);
    console.log("您点击的的坐标是:" + lat + "," + lng);
    let res = await getGeoCoder({
        latitude: lat,
        longitude: lng,
        location: lat + ',' + lng,
        key: 'XXUBZ-PFT65-',
        // get_poi: 1,
        SK: '4xxxxxxxxxxxxxxxxxxxxxxx'
    })
    console.log(res, '获取地理位置')
    if (res.status == 0) {
        message.success(res.message)
        data.formState.address = res.result.address
        data.formState.latitude = res.result.location.lat
        data.formState.longitude = res.result.location.lng
    } else {
        message.error(res.message)
    }
}

对应接口方法

export const getGeoCoder = (param) => {
    let sig = md5(`/ws/geocoder/v1?callback=jsonpCallback&key=${param.key}&location=${param.latitude},${param.longitude}&output=jsonp${param.SK}`)
    sig = encodeURI(sig)//url化一下
    let getData = {
        callbackQuery: 'callback', // 设置callback参数的key  不设置的话callback参数会自动被赋予一个随机值  md5校验无法通过
        callbackName: 'jsonpCallback', // 设置callback 参数的值
        key: param.key,
        location: param.location,
        output: 'jsonp',
        sig
    }
    //签名失败的解决办法 https://lbs.qq.com/faq/serverFaq/webServiceKey
    return jsonp('https://apis.map.qq.com/ws/geocoder/v1', getData)
}

最后就能,拿取到地址了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风清云淡_A

觉得有帮助的话可以给点鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值