答用户4586267
找到原因了,参数首字母要正序排序,必须要设置jsonp,必须要设置callback
function searchLocation(params: any) {
const key = 'xxxx'
const SecretKey = 'xxxx'
// 参数要按首字母排序
const url = `/ws/place/v1/suggestion?callback=jsonpCallback&key=${key}&keyword=${params.keyword}&output=jsonp®ion=${params.region}${SecretKey}`
let sig = md5(url)
jsonp(`https://apis.map.qq.com/ws/place/v1/suggestion`, {
callbackQuery: 'callback', // 设置callback参数的key 不设置的话callback参数会自动被赋予一个随机值 md5校验无法通过
callbackName: 'jsonpCallback',
keyword: params.keyword,
key,
sig,
region: '',
output: 'jsonp',
})
.then((item: any) => {
console.log(item)
})
.catch((e) => {
console.log(e)
})
}
searchLocation({
keyword: '苏州',
region: '',
})