微信经纬度用百度地图api转成城市地址 报跨域问题 解决后报404

微信经纬度用百度地图api转成城市地址 报跨域问题 解决后报404 那位大神帮解决一下

let url ='http://api.map.baidu.com/geoc...' //GET请求 直接放浏览器执行请求就能看到返回结果;

            let _config = {
                headers: {
                'Content-Type': 'application/json'
                }
            }; 
            let _this = this;            
            this.GLOBAL.get(_this, url, _config, function(datas){
                console.log(datas);                        
            }) 
            
            url在上边
            下边是解决跨域问题图片和反向代理的代码,然后报错404

clipboard.png
axios.get('/geocoder/v2/?ak=btsVVWf0TM1zUBEbzFz6QqWF&callback=renderReverse&location=' + this.latitude + ',' + this.longitude + '&output=json&pois=1').then(res=>{

            console.log(res.data);
            this.list = res.data.list
        }).catch(error=>{
            console.log(error);
        })
阅读 5.9k
2 个回答

楼主,你好~
有三种种解决方案:
首先,axios 不支持 jsonp,因为axios的作者觉得jsonp不太友好,推荐用CORS方式更为干净,但是jsonp支持范围更加广阔一些,一些老式的IE浏览器也能支持,所以有些公司还是jsonp用的多些,那么如果要使用jsonp,
1,可以使用 axios-jsonp,推荐此方法

import axios from 'axios';
import jsonpAdapter from 'axios-jsonp';

axios({
    url: 'http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=你的ak&callback=showLocation',
    adapter: jsonpAdapter
  }).then((res) => {
    console.log(res);
  });

2,可以独立安装
npm i jsonp --save-dev 然后在页面中引用import jsonp from 'jsonp',使用方式也是非常简单的:

showLocation: function () {
 jsonp('http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=你的ak&callback=showLocation', null, (err, data) => {
   if (err) {
     console.error(err.message);
   } else {
    console.log(data);
   }
 })
}

3,利用 jqueryajax 方法同样也可以

$.ajax({
        url: 'http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=你的ak&callback=showLocation',
        dataType: "jsonp", //指定服务器返回的数据类型
        success: function (res) {
          console.log(res);
        }

      })

如有帮助,麻烦点击下采纳,谢谢~

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏