> 文档中心 > Vue 如何实现登录后跳转回原来的页面

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"    });  }