场景:单独请求遇到后台接口请求返回401或者400时,需要重新刷新token再重新请求原本的接口,又不能迫使用户刷新页面。
let http = new Request({
baseURL: url,
timeout: 300000,
validateStatus: (status) => {
// 需要接收400状态码进行处理
return status === 200 || status == 400
}
})
http.interceptors.response.use(async (response) => {
console.log('response', response);
if (response.statusCode == 400) {
// 请求接口重新获取token
await ...
// 重新发起第一次用户登录凭证过期的接口
let result = http.request(response.config)
return result
} else {
let data = response.data;
return data;
}
}, (error) => {
return Promise.resolve(error)
})
欠缺问题:多个接口请求,返回用户登录失效的情况
👀后续将对同时多个接口请求进行研究再发布;