问题描述
假设我们有以下JavaScript代码:
axios.get('/some-url')
.then((response) => {...})
.catch((error) => {...});
默认情况下,响应的哪个HTTP状态代码导致调用.then()
,而在.catch()
中导致响应?
解决方法
这取决于设置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;
}
});