1,要求实现这样的功能。在vue中实现异步请求拦截,当登陆的cookie信息过期时跳转到登陆页面。现在用axios的异步拦截获取不到response的返回信息,代码如下
当我手动将cookies信息设置过期后再操作页面上的请求,如图所示response没有打印出来,刷新页面可以打印出来。有点疑惑?
1,要求实现这样的功能。在vue中实现异步请求拦截,当登陆的cookie信息过期时跳转到登陆页面。现在用axios的异步拦截获取不到response的返回信息,代码如下
当我手动将cookies信息设置过期后再操作页面上的请求,如图所示response没有打印出来,刷新页面可以打印出来。有点疑惑?
我的源码 我创建一个 axios 实例instance
// respone拦截器
instance.interceptors.response.use(
response => {
return response
},
error => { // 默认除了2XX之外的都是错误的,就会走这里
if (error.response) {
switch (error.response.status) {
case 401:
if (store.state.gameId) {
store.commit('DELETE_TOKEN')
router.replace({ // 跳转到登录页面
path: '/login?gameId=' + store.state.gameId,
query: {redirect: router.currentRoute.fullPath, gameId: store.state.gameId} // 将跳转的路由path作为参数,登录成功后跳转到该路由
})
} else {
store.commit('USER_LOGOUT')
}
}
}
return Promise.reject(error.response)
}
)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
axios添加全局请求和响应的拦截器,应该只要发送axios请求都会被拦截,你在vue中实现异步请求拦截,当登陆的cookie信息过期时跳转到登陆页面代码实现能贴出来看下吗