每次使用axios发送请求返回的数据都是双层data,需要response.data.data才能拿到需要的数据,并不能直接获取到我们需要的有效数据。

以上图数据为例,我们可以设置一个响应拦截器让每次axios返回的数据去掉外层的data

//设置响应拦截器
axios.interceptors.response.use(res => {
  //判断 success的结果是 false 或 true
  if(res.data.success){
    //结果为true 那么返回去掉外层data之后的数据
    return res.data
  } else {
    //结果为false 返回message中的错误信息
    return Promise.reject(new Error(res.data.message))
  }
  return res.data;
}), error => {
  return Promise.reject(error)
})

添加拦截器之后的效果

请求成功

请求失败

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐