vue2.x(vue-cli2.x)配置跨域请求代理,设置请求头

注意:如果是vue-cli3.x版本以上的配置请看
https://blog.csdn.net/m0_38134431/article/details/104802038

1、在config/index.js设置配置文件,跨域配置代理

(默认里面内容为空,我们需要加入对跨域接口的配置)
根据接口的不同设置的请求头和主机也不同,自己按照格式要求进行配置即可。
在这里插入图片描述
如上图配置好了之后,'/getapis/getCurrentCity'为自定义的axios请求路径,自己根据相应接口功能来命名。后面在用axios请求接口的时候,url路径就要写自定义的这个,那么代理就会自动解析成对应的请求接口了。

注意:修改了配置文件之后要重新启动项目!

2、配置了代理之后,我们就可以使用axios来进行跨域请求受保护的接口了

一般会在额外的js文件中,进行接口请求的参数拼接和请求传回的数据的格式进行处理。这时候这个js文件就需要额外引入axios(注意vue组件js代码块中用的,和js文件用的不一样。我们在这里直接import引入即可使用):

getCurrentCity.js文件代码如下图代码所示:
参数的拼接:
在这里插入图片描述
axios请求接口返回数据的处理(如果需要处理的话才处理):
在这里插入图片描述

3、在vue组件中就能调用函数取到到接口数据了
import {getCurrentCity} from 'common/apis/getCurrentCity.js'

export default {
	methods:{
	  _getCurrentCity () {
	  	  // 在这里就可以获取到当前城市的接口数据了
	      getCityCurrent().then((res) => {
	        // 打印出获取到的数据
	        console.log(res)
	      }).catch((err) => {
	        console.log(err)
	      })
    	}
	},
	mounted () {
    	this._getCurrentCity()
  }
}

常见问题:

1、按照上面步骤配置好后请求接口报错404
首先需要排查自己的参数是否和原接口一样;

然后把自己的请求地址前面代理部分替换成target中地址,输入到浏览器地址栏看看是否能成功访问不报错404;
在这里插入图片描述如果能够正常访问不报404错误的话,那就是地址没问题;

最后排查自己的proxyTable配置中是不是有多个跨域接口配置,pathRewrite是否有冲突了,导致地址解析错误而报错404,如果是的话修改为不一样的。

2、运行后还是报错Access-Control-Allow-Origin错误
查看自己的bypass请求头是否按照别人的地址写对了。
在这里插入图片描述


2020/03/19 注释: 现在vue-cli版本已经发布到了4.x版本,配置代理的方式也改变了,详细请看官网:
https://cli.vuejs.org/zh/config/#devserver-proxy

常用的vue.config.js配置请看:
https://blog.csdn.net/m0_38134431/article/details/104802038

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值