| | |
| | | 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 |
| | | }) |
| | |
| | | /** |
| | | * 请求拦截器 |
| | | */ |
| | | 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 |
| | | } |
| | | |
| | |
| | | /** |
| | | * 响应拦截器 |
| | | */ |
| | | 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 = '后端接口连接异常' |
| | |
| | | } 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 |