需求:在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) })