可以查看axios的中文文档,地址如下
https://www.axios-http.cn/
为什么要对axios进行二次封装:
由于自带的axios不能满足我们的需求,需要对其进行二次封装,方便程序员使用
// 引入axiosimport axios from 'axios'// @ts-ignoreimport { ElMessage } from "element-plus";import (GET_TOKEN) from './token.ts'// 第一步:利用axios对象的create方法,去创建axios实例(其他的配置:基础路径、超时时间)const requeset = axios.create({// 基础路径baseURL: import.meta.env.VITE_APP_BASE_API,//后期可以换成自己的项目地址// 设置超时时间timeout: 5000,})// // 第二步:给request实例添加请求拦截器requeset.interceptors.request.use((config)=>{//获取tokenconst token = GET_TOKEN()if(token){config.header.token = token}// 返回配置对象return config;})// 第三步:给request实例添加响应拦截器requeset.interceptors.response.use((response)=>{// 成功的回调// 简化数据return response.data},(error)=>{// 失败的回调:处理http网络错误// 定义一个变量,存储网络错误信息let message = '';// http状态码let status = error.response.statusswitch(status){case 401:message = 'TOKEN过期';break;case 403:message = '无权访问';break;case 404:message = '请求地址错误';break;case 500:message = '服务器出现问题';break;default:message = '网络出现错误';break;}// 提示错误信息ElMessage({type:'error',message})return Promise.reject(error);})// 对外暴露export default requeset;
