一般vue项目都会对axios进行封装,后台统一规范默认让服务器对所有请求都返回成功,然后在成功的对象里面包装一层对象result,里面也包含code,msg,result信息,前端拿这个result里面的code来做判断接口是否相应成功;类似如下:
const api = axios.create({ baseURL:'', transformRequest;[data =>{qs.stringify(data)}] }) api.interceptors.response.use(function (response) { return response; }, function (error) { let data = {} if(err.message.indexOf('timeout')>-1){ data.message = '请求超时' return { data } } 。。。 。。。 return error; });
平常用惯了项目封装的axios的请求和异常处理;突然一下子不用封装的,单独将axios引入用(比如多个文件和表单数据一起上传);一下没想出来,一查资料其实也简单,怕忘记,记录如下:
两种方式:
axios.interceptors.response.use(function (response) { return response; }, function (error) { console.log(error.response) //服务器返回的错误信息,常见的400请求错了,这里能看到400请求返回的错误信息 return Promise.reject(error); });
axios.get('/user/12345') .catch(function (error) { if (error.response) { // 请求已发出,但服务器响应的状态码不在 2xx 范围内 console.log(error.response.data); console.log(error.response.status); console.log(error.response.headers); } else { console.log('Error', error.message); } console.log(error.config); });
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/159676.html