axios如何获取响应头?

项目中axios一般会做封装

axios.interceptors.response.use((response) => {
  return response.data;
}, (error) => {
  return Promise.reject(error);
});

这样每次请求会直接获得接口返回的数据,而不会拿到请求封装的数据。

但是有的个别接口需要完整的封装数据,这种特殊的接口要怎么请求呢?也就是某些接口跳过上面的返回拦截。

阅读 3.5k
2 个回答

你可以通过url判断是否返回response还是response.data,或者你让后台在请求头中加个标识,如果获取到这个标识就返回response,否则返回reseponse.data也行

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里面传过去。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题