Vue 如何实现登录后跳转回原来的页面
环境
Vue 3 + TS
http.ts
在http.ts中实现拦截,如果后台返回没权限信息,就跳转到登录页面
//响应拦截axios.interceptors.response.use((response: AxiosResponse<any, any>) => { endLoading(); console.log("返回值打印开始----------") console.log(JSON.stringify(response)) console.log("返回值打印结束----------") if (response.data.code != 200) { ElNotification({ title: 'Error', message: response.data.message, type: 'error', }) } return response; }, error => { //错误提醒 endLoading(); //todo :完成没有权限就跳转到登录页 if (error.response) { console.log("status:" + error.response.status) switch (error.response.status) { case 401: //完善登录跳转 alert("身份认证失败~") // @ts-ignore 入如果没有权限就在这跳转到登录页 router.push({//传递参数使用query的话,指定path或者name都行,但使用params的话,只能使用name指定path: '/login',query: { auth: "0"} } ); break; default: alert("未知错误~") } } return Promise.reject(error); }
登录页面登陆成功之后
proxy.$axios.post(userLoginApi, props.loginUser).then((res: Result) => { //发送成功 if (res.data.code == 200) { saveStorage(res); proxy.$message({ message: res.data.message, type: "success" }); //在这里判断一下,是不是刚刚传过来的字段 if (route.query.auth=="0"){ router.go(-1); } } else { proxy.$message({ message: res.data.message, type: "error" }); }