import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
axios.defaults.headers.post["Content-Type"] = "application/json;charset=utf8";
const service = axios.create({
withCredentials: true,
timeout: 50000
})
service.interceptors.request.use(
config => {
return config
},
error => {
return Promise.reject(error)
}
)
service.interceptors.response.use(
response => {
if (response.request.responseType == 'blob') {
return response.data;
}
const res = response.data;
if (res.code && res.code != '0000' && res.code != '200') {
Message({
message: res.msg || 'Error',
type: 'error',
duration: 5 * 1000
})
return Promise.reject(new Error(res.message || 'Error'))
} else {
return res
}
},
error => {
console.log('err' + error)
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
function http(obj) {
let baseUrl = process.env.VUE_APP_BASE_API;
return new Promise((resolve, reject) => {
if (obj.method) {
obj.method = obj.method.toLowerCase();
} else {
obj.method = "get";
}
if (["post", "put"].includes(obj.method) && obj.data) {
if (
obj.headers &&
obj.headers["Content-Type"] &&
obj.headers["Content-Type"].indexOf(
"application/x-www-form-urlencoded"
) !== -1
) {
obj.data = qs.stringify(obj.data);
}
}
let url;
if (/http/.test(obj.url)) {
url = obj.url;
} else {
url = baseUrl + obj.url;
}
let params = {
...obj,
url,
};
service(params)
.then((response) => {
resolve(response);
})
.catch((error) => {
reject(error);
});
}).catch((e) => {
console.log(e);
});
}
export default http;