配置axios,将token赋值给一变量,在拦截器中通过变量获取token,导致调用其他接口报401

在vue开发中使用axios来调用后台接口,需进行一系列配置,这里就不多说了,主要是发现了一个小小的问题。
我做的项目是登录成功返回一个身份验证信息token,我将token保存在本地session中,然后在配置axios的http.js文件中将token赋值给一个变量,然后在拦截器判断是否存在token,这里是通过变量获取的
代码如下
在这里插入图片描述
然后登录成功之后跳转到主页面继而调用接口获取用户信息,此时报401
在这里插入图片描述
在请求失败的回调中是能打印出来保存在session的token,但是在拦截器里打印出来是null,我想了很久最终猜测,是因为把token赋值给了一个变量,在登录时第一次调用接口,此时的token是空的,也就是那个变量TOKEN是空的,而登录成功后再调用另一个接口,仅调用暴露出去的axios,并不会把整个http.js文件重新调用一边,也就是说,此时暴露出去的axios里的token还是那个空的TOKEN,所以报401
所以直接在拦截器那里从session中那token,修改如下:
在这里插入图片描述
总结:在调用js里的对象时,用到的变量需定义在对象里面

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值