vue axios 401登录过期返回登录页
- 在interceptor.js拦截器里封装axios响应状态处理
import axios from 'axios'
import $router from '@/router'
import { MessageBox, Message } from 'element-ui'
// create an axios instance
const http = axios.create({
serverUrl: serverUrl,
withCredentials: false, // send cookies when cross-domain requests
// timeout: 10000 // request timeout
});
// response interceptor
http.interceptors.response.use(
response => {
// ...do something
},
error => {
// console.log('err' + error); // for debug
if (error.response.status == 401) {//登录过期
// to re-Login
if(sessionStorage.getItem('isLoginOut') == undefined ) {//防止出现多次弹框
sessionStorage.setItem('isLoginOut', true);//登出标记
MessageBox.confirm('登录已过期,请重新登录!', '提示', {
confirmButtonText: '确定',
showClose: false,
showCancelButton: false,
closeOnClickModal: false,
type: 'warning'
}).then(() => {
sessionStorage.clear();//清除缓存
$router.push({path: '/'});//返回登录页
})
}
}
return Promise.reject(error)
}
);