需求:在axios 响应拦截中,根据响应判断路由跳转
import { createHashHistory,createBrowserHistory } from 'history'; // 引入 createHashHistory // 这里根据路由 hash 或 history 进行调用 createHashHistory(),createBrowserHistory() const history = createHashHistory(); // 调用 createHashHistory history.push('/login');
代码片段
import { createHashHistory } from 'history'; // 引入 createHashHistory
const history = createHashHistory(); // 调用 createHashHistory
// 返回状态判断 axios.interceptors.response.use((res) => { // 关闭加载动画 Toast.hide(toast); if (res.data.success === false) { // 删除资源,提示信息 if (res.data.code === '000012') { var bindRoleStr = ''; // eslint-disable-line no-unused-vars res.data.data.forEach((element, index) => { if ((res.data.data.length - 1) === index) { bindRoleStr += element.role_name; } else { bindRoleStr += (element.role_name + "、") } }); Toast.fail(`当前资源被角色“${bindRoleStr}”绑定,请解除绑定进行删除`); } else if(res.data.code === '000018') { // 回话结束 Toast.fail(res.data.message); delCookie('flwebvpn_admin_sessionid'); // 跳转路由 history.push('/login'); } else{ Toast.fail(res.data.message); } } return res; }, (error) => { return Promise.reject(error) })