Files
ClassContent/历届学生/逯帅帅/项目开发/上课项目/Vue3模板/src/http/index.js
2024-09-27 02:06:13 +08:00

65 lines
1.7 KiB
JavaScript

import axios from 'axios';
import config from '../config';
import { Toast } from 'vant';
class Http {
constructor() {
axios.defaults.baseURL = config.getUrl();
this.interceptors();
}
async get(option) {
return await axios.get(option.url, {
params: option.data,
headers: Object.assign({
token: localStorage.getItem("token")
}, option.headers)
});
}
async post(option) {
return await axios.post(option.url, option.data, {
headers: Object.assign({
token: localStorage.getItem("token")
}, option.headers)
});
}
interceptors() {
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
Toast.loading({
duration: 0,
message: '加载中...',
forbidClick: true,
});
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
Toast.clear();
var data = response.data;
switch(data.resultCode) {
case "000":
return data.data;
case "500":
Toast.fail(data.message);
throw new Error(data.message);
break;
}
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});
}
}
export default new Http()