| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import axios from 'axios'
- import { ElMessage } from 'element-plus'
- import { ROOTPATH } from './httpUrl'
- const apiClient = axios.create({
- baseURL: ROOTPATH,
- timeout: 10000
- })
- // 请求拦截器
- apiClient.interceptors.request.use(
- config => {
- if (config.type === 'json') {
- config.headers['Content-Type'] = 'application/json'
- } else {
- config.headers['Content-Type'] = 'multipart/form-data'
- }
- // token
- const token = localStorage.getItem('token')
- if (token) {
- config.headers['token'] = token
- }
- return config
- },
- error => {
- return Promise.reject(error)
- }
- )
- // 响应拦截器
- apiClient.interceptors.response.use(
- response => {
- const res = response.data
- // ✅ 判断业务状态码
- if (res.code !== 0) {
- // 弹出提示信息
- ElMessage({
- message: res.msg || '请求失败',
- type: 'warning',
- duration: 2000
- })
- }
- // 无论成功失败都返回,方便前端继续逻辑判断
- return res
- },
- error => {
- // 网络错误、超时、服务器错误时
- ElMessage({
- message: error.message || '网络错误,请稍后再试',
- type: 'error',
- duration: 2000
- })
- return Promise.reject(error)
- }
- )
- export default apiClient
|