配置axios,将token赋值给一变量,在拦截器中通过变量获取token,导致调用其他接口报401
在vue开发中使用axios来调用后台接口,需进行一系列配置,这里就不多说了,主要是发现了一个小小的问题。我做的项目是登录成功返回一个身份验证信息token,我将token保存在本地session中,然后在配置axios的http.js文件中将token赋值给一个变量,然后在拦截器判断是否存在token,这里是通过变量获取的代码如下然后登录成功之后跳转到主页面继而调用接口获取用户信息,此时...
·
在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里的对象时,用到的变量需定义在对象里面
更多推荐
已为社区贡献2条内容
所有评论(0)