61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
import axios from "axios";
|
|
import config from "@/config"
|
|
export default class http {
|
|
|
|
constructor() {
|
|
this.instance = axios.create({
|
|
baseURL: config.checkUrl(),
|
|
timeout: 3000,
|
|
headers: {'X-Custom-Header': 'foobar'}
|
|
});
|
|
|
|
this.interceptors()
|
|
}
|
|
|
|
async get(params) {
|
|
return await this.instance.get(params.url, {
|
|
params: params.data,
|
|
headers: Object.assign({
|
|
token: localStorage.getItem("token"),
|
|
"Content-Type": "application/json;"
|
|
}, params.headers)
|
|
})
|
|
}
|
|
|
|
async post(params) {
|
|
return await this.instance.post(params.url, params.data, {
|
|
headers: Object.assign({
|
|
token: localStorage.getItem("token"),
|
|
"Content-Type": "application/json;"
|
|
}, params.headers)
|
|
})
|
|
}
|
|
|
|
interceptors() {
|
|
// 添加请求拦截器
|
|
this.instance.interceptors.request.use(function (config) {
|
|
// 在发送请求之前做些什么
|
|
return config;
|
|
}, function (error) {
|
|
// 对请求错误做些什么
|
|
return Promise.reject(error);
|
|
});
|
|
|
|
// 添加响应拦截器
|
|
this.instance.interceptors.response.use(function (response) {
|
|
// 对响应数据做点什么
|
|
switch (response.data.status) {
|
|
case 200:
|
|
return response.data.result
|
|
break;
|
|
case 404:
|
|
throw new Error(response.data.msg);
|
|
break;
|
|
}
|
|
}, function (error) {
|
|
// 对响应错误做点什么
|
|
return Promise.reject(error);
|
|
});
|
|
}
|
|
}
|