错误处理
当使用catch,或者传递一个rejection callback作为then
的第二个参数时,响应可以通过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 if (error.request) { // 请求已经成功发起,但没有收到响应 // `error.request` 在浏览器中是 XMLHttpRequest 的实例, // 而在node.js中是 http.ClientRequest 的实例 console.log(error.request); } else { // 发送请求时出了点问题 console.log('Error', error.message); } console.log(error.config); });
使用validateStatus配置选项,可以自定义抛出错误的 HTTP code。
axios.get('/user/12345', { validateStatus: function (status) { return status < 500; // 处理状态码小于500的情况 } })
使用toJSON可以获取更多关于HTTP错误的信息。
axios.get('/user/12345') .catch (function (error) { console.log(error.toJSON()); });