import axios from 'axios'
axios.defaults.baseURL = ...
axios.defaults.timeout = 10000;
axios.defaults.headers.post['Content-Type'] = 'application/json';
//请求拦截
axios.interceptors.request.use(config => {
//可在此处登入
return config;
}, error => {
return Promise.reject(error);
});
//响应拦截
axios.interceptors.response.use(response => {
// 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据
if (response.status === 200) {
if (response.data.code === 900) {
Message.error(response.data.msg)
//可在此处登出
}
return Promise.resolve(response);
} else {
return Promise.reject(response);
}
}, error => {
if (error.response && error.response.status === 401) {
window.localStorage.removeItem('token');
}
});
/**
* axios封装get和post方法
*/
function get(url, params, config = {}) {
return new Promise((resolve, reject) => {
axios.get(url, {
params,
...config,
}).then(res => {
resolve(res.data);
}).catch(err => {
reject(err.data);
})
});
}
function post(url, params, config = {}) {
return new Promise((resolve, reject) => {
axios.post(url, params, {
...config,
})
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data);
})
});
}
vue中 axios怎么封装?
最新推荐文章于 2023-10-11 12:30:00 发布