gxd-vue-library
Version:
依赖与element Ui插件库,聚福宝福利PC端插件库
59 lines (50 loc) • 1.31 kB
JavaScript
;
const axios = require('axios');
const qs = require('qs');
const {compilePath} = require('./parsePath');
/**
* @description 初始化异步请求对象
* @type AxiosInstance
*/
const service = axios.create({
timeout: 10000, // request timeout
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
},
});
service.interceptors.request.use(
(config)=>{
if (config.method === 'get') {
let {url, result} = compilePath(config.url, config.params);
config['url'] = url;
config['params'] = result
}
else {
let {url, result} = compilePath(config.url, config.data);
config['url'] = url;
config['data'] = result
}
if (config.method === 'post') {
config['data'] = qs.stringify(config['data'])
}
return config
},
error => {
return Promise.reject(error)
}
);
service.interceptors.response.use(
(response)=>{
return response.data;
},
(error)=>{
console.log(error);
return Promise.reject({
response: error.response,
config: error.config,
//status: error.response.status,
})
}
);
module.exports = service;