axios封装请求失败刷新页面

封装axios,比如token失效,怎么样重新请求并刷新页面

先判断token是否有效,无效的话就重定向到登录页面。

 axios可以添加请求成功或失败的拦截,我写点主要步骤,具体的可以自己网上学学

let axiosInstance = axios.create() // axios实例
axiosInstance.interceptors.response.use(请求成功方法, 请求失败方法)

function responseFailFunc (responseError) {
    if (responseError.response.status === 401) {
        // 执行你要的操作
    }
}

 

判断是token是否有效,没有效就重新请求刷新token的接口。或者重新请求登录接口,也就是不需要用户输入用户名密码,自己把这些携带过去即可。但一般都是有一个刷新token的接口

如果你的需求是重新获取token,然后刷新页面,就很简单了

instance.interceptors.response.use(response => {
  const { code } = response.data
  if (code === '过期') {
    // 刷新token
    return refreshToken().then(res => {
      // 刷新token成功,将最新的token更新到header中,同时保存在localStorage中
      const { token } = res.data
      instance.setToken(token)
      // 获取当前失败的请求
      const config = response.config
      // 重置一下配置
      config.headers['X-Token'] = token
        // 刷新页面
       location.reload()
    }).catch(res => {
      console.error('refreshtoken error =>', res)
      window.location.href = '/'
    })
  }
  return response
}, error => {
  return Promise.reject(error)
})

function refreshToken () {
   
    return api.post('/refreshtoken').then(res => res.data)
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m