axios请求与响应拦截器,封装post及get方法

在请求或响应被 then 或 catch 处理前拦截它们。

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
return config;
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error);
});

export function fetch(url, params = {}) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
})
.then(response => {
resolve(response.data);
})
.catch(err => {
reject(err)
})
})
}

export function post(url, data = {}) {
return new Promise((resolve, reject) => {
axios.post(url, data)
.then(response => {
resolve(response.data);
}, err => {
reject(err)
})
})
}

export const server = {
getFooterData: (paramObj) => {
return fetch('/api/getFooterData', qs.stringify(paramObj));
},
}

注意 qs库的使用:
import qs from 'qs';
url中的参数转为对象:qs.parse(url)
将对象转为url参数形式(&连接):qs.stringify(a)

你可能感兴趣的:(axios请求与响应拦截器,封装post及get方法)