【问题标题】:Axios: which HTTP response status codes result in then() and which in catch()?Axios:哪些 HTTP 响应状态代码导致 then() 和哪些 catch()?
【发布时间】:2021-02-11 22:06:05
【问题描述】:
假设我们有以下 JavaScript 代码:
axios.get('/some-url')
.then((response) => {...})
.catch((error) => {...});
默认情况下,响应的哪些HTTP状态码导致.then()被调用,哪些在.catch()?
【问题讨论】:
标签:
javascript
error-handling
axios
http-status-codes
【解决方案1】:
这由设置validateStatus 决定。
lib/defaults.js中默认设置如下:
validateStatus: function validateStatus(status) {
return status >= 200 && status < 300;
}
因此,200 范围内的任何状态代码都将导致调用 .then(),而任何其他状态代码将导致调用 .catch()。
可以改成如下:
let myAxiosInstance = axios.create({
validateStatus: function (status) {
return status >= 200 && status < 500;
}
});