axios拦截器1
2018-07-26 本文已影响0人
前端划水工
为了减少代码的臃肿和方便维护,对axios请求统一做了一些处理,代码如下
import axios from 'axios'
import qs from 'qs'
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
//POST传参序列化
axios.interceptors.request.use((config) => {
if(config.method === 'post'){
// config.data = qs.stringify(config.data);
}
return config;
},(error) =>{
// console.warn("错误的传参");
return Promise.reject(error);
});
//code状态码200判断
axios.interceptors.response.use((res) =>{
if(!res.data.hasOwnProperty('status')) {
res.data.status = res.data.code;
//return Promise.reject(res.data);
}
return Promise.resolve(res.data)
}, (error) => {
// console.warn("网络异常");
return Promise.reject(error);
});
function fetch(options) {
options = options || {}
let pos = options.url.search(/^http/i)
if (pos == -1)
options.url = serviceProtocol() + options.url;
options.headers = options.headers || {};
return axios(options)
}
export default fetch;
大致思路就是这样
fetch的使用
export function publishChatMsg(data) {
return fetch({
method: 'post',
url: ``,
data: data
})
}