axios拦截器获取不到接口返回的response?

1,要求实现这样的功能。在vue中实现异步请求拦截,当登陆的cookie信息过期时跳转到登陆页面。现在用axios的异步拦截获取不到response的返回信息,代码如下
图片描述

当我手动将cookies信息设置过期后再操作页面上的请求,如图所示response没有打印出来,刷新页面可以打印出来。有点疑惑?

阅读 14.2k
3 个回答

axios添加全局请求和响应的拦截器,应该只要发送axios请求都会被拦截,你在vue中实现异步请求拦截,当登陆的cookie信息过期时跳转到登陆页面代码实现能贴出来看下吗

我的源码 我创建一个 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)
  }
)
新手上路,请多包涵
console.log(response.data)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题