封装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