From c7f3fd5215399b37d0511b3bd555150ff1b13507 Mon Sep 17 00:00:00 2001 From: charles <981744753@qq.com> Date: 星期一, 29 四月 2024 10:39:30 +0800 Subject: [PATCH] fix:回退原先版本 --- src/common/utils/request.ts | 41 ++++++++++++++++++++++++++++------------- 1 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/common/utils/request.ts b/src/common/utils/request.ts index 0522895..68da2d3 100644 --- a/src/common/utils/request.ts +++ b/src/common/utils/request.ts @@ -1,8 +1,10 @@ -import axios from 'axios' +import axiosClient from 'axios' +import type { AxiosRequestConfig } from 'axios' import { ElMessage } from 'element-plus' import { getToken } from '@/common/utils/index' +import router from '../../router/index' -const Axios = axios.create({ +const instance = axiosClient.create({ responseType: 'json', withCredentials: true // 鍏佽鎼哄甫 cookie }) @@ -10,11 +12,15 @@ /** * 璇锋眰鎷︽埅鍣� */ -Axios.interceptors.request.use( +instance.interceptors.request.use( (config) => { // 鑻ユ槸鏈夊仛閴存潈token , 灏辩粰澶撮儴甯︿笂token const token = getToken() - if (token) { + if ((token == null || token == '' || token == 'undefined') && config.url != '/api/base/login') { + router.push('/login') + return config + // window.location = `//${window.location.hostname}:9080`+'/login' + } else if (token) { config.headers.Authorization = 'Bearer ' + token } @@ -28,20 +34,24 @@ /** * 鍝嶅簲鎷︽埅鍣� */ -Axios.interceptors.response.use( +instance.interceptors.response.use( (res) => { if (res.data.code == 200) { - return res.data ?? {} + return res.data } else { ElMessage({ message: res.data.msg, type: 'error', duration: 3 * 1000 }) - return res.data ?? {} + return Promise.reject(res?.data) } }, (error) => { + if (error.response.status === 401) { + // alert('JWT澶辨晥,鍗冲皢璺宠浆鑷崇櫥褰曢〉..') + router.push('/login') + } let { message } = error if (message === 'Network Error') { message = '鍚庣鎺ュ彛杩炴帴寮傚父' @@ -50,13 +60,18 @@ } else if (message.includes('Request failed with status code')) { message = '绯荤粺鎺ュ彛' + message.substr(message.length - 3) + '寮傚父' } - ElMessage({ - message: message, - type: 'error', - duration: 3 * 1000 - }) + const token = getToken() + if (token) { + ElMessage({ + message: message, + type: 'error', + duration: 3 * 1000 + }) + } return Promise.reject(error) } ) -export default Axios +const axios = <T>(cfg: AxiosRequestConfig) => instance.request<any, T>(cfg) + +export default axios -- Gitblit v1.8.0