| import axios from 'axios' |
| import { ElMessage } from 'element-plus' |
| import { getApiBase } from '@/utils/apiBase' |
|
|
| |
| const request = axios.create({ |
| baseURL: getApiBase(), |
| headers: { |
| 'Content-Type': 'application/json' |
| } |
| }) |
|
|
| |
| request.interceptors.request.use( |
| (config) => { |
| |
| const token = localStorage.getItem('token') |
| if (token) { |
| config.headers.Authorization = `Bearer ${token}` |
| } |
| return config |
| }, |
| (error) => { |
| console.error('请求错误:', error) |
| return Promise.reject(error) |
| } |
| ) |
|
|
| |
| request.interceptors.response.use( |
| (response) => { |
| const { data } = response |
| |
| |
| if (data.code === 200 || data.success) { |
| return data |
| } else { |
| ElMessage.error(data.msg || data.message || '请求失败') |
| return Promise.reject(new Error(data.msg || data.message || '请求失败')) |
| } |
| }, |
| (error) => { |
| console.error('响应错误:', error) |
| |
| |
| if (error.response) { |
| const { status } = error.response |
| switch (status) { |
| case 401: |
| ElMessage.error('未授权,请重新登录') |
| |
| break |
| case 403: |
| ElMessage.error('拒绝访问') |
| break |
| case 404: |
| ElMessage.error('请求地址不存在') |
| break |
| case 500: |
| ElMessage.error('服务器内部错误') |
| break |
| default: |
| ElMessage.error('网络错误') |
| } |
| } else { |
| ElMessage.error('网络连接失败') |
| } |
| |
| return Promise.reject(error) |
| } |
| ) |
|
|
| |
| export const http = { |
| get(url, params) { |
| return request.get(url, { params }) |
| }, |
| |
| post(url, data, config = {}) { |
| return request.post(url, data, config) |
| }, |
| |
| put(url, data, config = {}) { |
| return request.put(url, data, config) |
| }, |
| |
| delete(url, params) { |
| return request.delete(url, { params }) |
| }, |
| |
| upload(url, formData, onUploadProgress) { |
| return request.post(url, formData, { |
| headers: { |
| 'Content-Type': 'multipart/form-data' |
| }, |
| onUploadProgress |
| }) |
| } |
| } |
|
|
| export default request |