diff --git a/src/api/request.js b/src/api/request.js index 5f71e8f..151a518 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -1,7 +1,7 @@ import axios from "axios"; import { authToken } from "@/store/index.js" import { MessagePlugin } from "tdesign-vue-next" -import { useRouter } from 'vue-router'; +import router from "@/router/index.js" function get_api_url() { if (import.meta.env.MODE === 'development' || (import.meta.env.MODE === 'production' && window.location.host.indexOf('localhost') > -1)) { @@ -39,15 +39,18 @@ instance.interceptors.response.use( }, error => { let err_msg = "请求错误"; - console.log(error) if (error.response) { - switch (error.response.status) { + const status = error.response.status; + const url = error.config?.url || ''; + switch (status) { case 401: if (authToken.access) { authToken.access = null } if (authToken.refresh) { authToken.refresh = null } - if (error.config.url.indexOf('/login') == -1) { - const router = useRouter(); - router.replace("/login") + if (!url.includes('/login')) { + // 避免重复跳转 + if (!window.location.pathname.includes('/login')) { + router.replace('/login'); + } } break; default: diff --git a/src/components/layout/index.vue b/src/components/layout/index.vue index 08e5a34..1f6b4ac 100644 --- a/src/components/layout/index.vue +++ b/src/components/layout/index.vue @@ -40,12 +40,11 @@