axios在Browser中的错误处理类型
2021-07-05 本文已影响0人
大冬桥
axios是用于Browser和node.js的Promise的HTTP client。在Browser中,主要是对XMLHttpRequest对象的封装。
axios在Browser中错误类型
- 网络错误,基于XMLHttpRequest error事件,error.message的值为"Network Error"。
- 超时错误,基于XMLHttpRequest timeout事件,"timeout of xxxms exceeded",xxx为配置的超时时间。
- 响应错误,根据返回的状态码,决定是否抛出错误。validateStatus 配置选项,定义应该抛出错误的 HTTP 代码。
//默认配置
validateStatus: function (status) {
return status >= 200 && status < 300;
}
- 请求取消,基于XMLHttpRequest abort 方法,使用axios.isCancel(error)来判断是否为一个请求取消错误。
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('/user/12345', {
cancelToken: source.token
}).catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// handle error
}
});
axios.post('/user/12345', {
name: 'new name'
}, {
cancelToken: source.token
})
// cancel the request (the message parameter is optional)
source.cancel('Operation canceled by the user.');