这个问题可能与你在heroku上的axios实例有关,特别是如果你没有正确配置axios实例的默认值。为了确保你的axios实例在后端发生错误时能够让catch块捕捉到,你需要使用axios的interceptors来处理请求和响应的错误。下面是一个基本的axios配置示例,可在你的代码中使用:
const axios = require('axios');
axios.interceptors.response.use(
response => {
return response;
},
error => {
if (!error.response) {
// handle network error
} else {
switch (error.response.status) {
case 401:
// handle unauthorized error
break;
case 404:
// handle not found error
break;
default:
// handle other errors
break;
}
}
return Promise.reject(error);
}
);
axios.get('your-api-endpoint')
.then(response => {
// handle successful response
})
.catch(error => {
// handle error
});
在这个示例中,axios实例添加了一个response拦截器,以捕获请求和响应中发生的任何错误。interceptors使用一个Promise来处理错误,并在catch块中提供错误信息。使用拦截器可以确保你的catch块在所有情况下都能够捕获到错误,而不会在heroku上遇到问题。
上一篇:Axios的catch不会被触发