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

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