12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- //对于axios进行二次封装
- //目的1: 利用axios请求,拦截功能
- //目的2:请求拦截器,一般可以在公共的部分携带token
- import axios from "axios";
- import { ElMessage } from "element-plus";
- //利用axios。crate方法创建一个axios实例
- const request = axios.create({
- baseURL: '/api', //请求的基本路径的设置
- timeout: 5000 //超时时间的设置,超出五秒请求就是失败的
- })
- //请求拦截器
- request.interceptors.request.use((config) => {
- return config
- })
- //响应拦截器
- request.interceptors.response.use((response) => {
- //处理http错误
- return response.data
- }, (error) => {
- //处理http网络错误
- let status = error.response.status
- switch (status) {
- case 404:
- //错误提示信息
- ElMessage({
- type: 'error',
- message: '请求路径出现问题'
- })
- break;
- case 500 | 501 | 502 | 503 | 504 | 505:
- ElMessage({
- type: 'error',
- message: "服务器挂了"
- })
- break;
- case 401:
- ElMessage({
- type: 'error',
- message: '参数错误'
- })
- break;
- }
- return Promise.reject(new Error(error.message))
- })
- //对外暴露
- export default request;
|