项目中axios一般会做封装
axios.interceptors.response.use((response) => {
return response.data;
}, (error) => {
return Promise.reject(error);
});
这样每次请求会直接获得接口返回的数据,而不会拿到请求封装的数据。
但是有的个别接口需要完整的封装数据,这种特殊的接口要怎么请求呢?也就是某些接口跳过上面的返回拦截。
项目中axios一般会做封装
axios.interceptors.response.use((response) => {
return response.data;
}, (error) => {
return Promise.reject(error);
});
这样每次请求会直接获得接口返回的数据,而不会拿到请求封装的数据。
但是有的个别接口需要完整的封装数据,这种特殊的接口要怎么请求呢?也就是某些接口跳过上面的返回拦截。
axios.interceptors.response.use((response) => {
const { config: { getHead }} = response;
if(getHead) {
return response;
} else {
return response.data;
}
}, (error) => {
return Promise.reject(error);
});
用的时候把getHead:true
放在config
里面传过去。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
你可以通过url判断是否返回response还是response.data,或者你让后台在请求头中加个标识,如果获取到这个标识就返回response,否则返回reseponse.data也行