Files
ClassContent/历届学生/17届课程/团队练手私活项目/h5share_code/src/api/index.js
2024-09-27 02:06:13 +08:00

94 lines
2.2 KiB
JavaScript

import axios from 'axios'
import utils from '../utils'
import { Toast } from 'vant';
class Axios {
constructor() {
axios.defaults.baseURL = utils.BaseApi()
this.RequestInterceptors()
this.ResponseInterceptors()
}
/**
* get接口的请求
* @param params
* {
* url: '请求地址',
* data: {
* 接口请求参数
* }
* }
* @returns {Promise<*>}
*/
async get(params = {}) {
return await axios.get(params.url, {
params: params.data
})
}
/**
* post 接口的请求
* @param params
* {
* url: '请求地址',
* data: {
* 接口请求参数
* }
* }
* @param params
* @returns {Promise<*>}
*/
async post(params = {}) {
return await axios.post(params.url, params.data)
}
/**
* 添加请求拦截器
* @constructor
*/
RequestInterceptors() {
axios.interceptors.request.use(function(config) {
// ajax发送的时候显示加载进度
Toast.loading({
message: '加载中...',
forbidClick: true
});
// 在发送请求之前做些什么
return config;
}, function(error) {
// 对请求错误做些什么
return Promise.reject(error);
});
}
/**
* 添加响应拦截器
* @constructor
*/
ResponseInterceptors() {
axios.interceptors.response.use(function(response) {
console.log(response.data)
switch (response.data.resultCode) {
case '000':
Toast.clear("给你");
return response.data.data;
break;
case '500':
Toast.fail(response.data.message);
break;
default:
break;
}
}, function(error) {
// 对响应错误做点什么
Toast.fail('wwwww'); // 给用户看
// 日志记录 稍后写
return Promise.reject(error);
});
}
}
export default new Axios();