import axios from 'axios'
import Vue from 'vue'
import { Toast } from '../baseUI'
Vue.use(Toast);
// 二次封装axios请求
class Http{
constructor(){
// 创建axios实例对象
this.instance = axios.create(
// 请求统一进行配置
{
baseURL: 'http://localhost:9000/api',
timeout: 60000,
}
);
this.addResponseInterceptors();
}
// 添加响应拦截器的代码
addResponseInterceptors(){
this.instance.interceptors.response.use(function (response) {
if(response.status === 200 && response.data.code === 200){
return response.data;
}else{
// 业务逻辑错误
//该请求是失败的。
Toast('请求失败');
return Promise.reject('网络错误');
}
}, function (error) {
// 服务器响应错误
// 对响应错误做点什么
Toast('请求失败');
return Promise.reject(error);
});
}
get(url, params = {}){
return this.instance.get(url, {
params
});
}
post(url, data = {}){
return this.instance.post(url, data);
};
}
export default new Http();