1. 使用 .catch 处理错误:
axios.get('https://api.example.com/data')
.then(response => {
// 处理请求成功
console.log('请求成功', response);
})
.catch(error => {
// 处理请求失败
console.error('请求失败', error);
if (error.response) {
// 请求发出去收到响应,但其状态码不在 2xx 范围内
console.error('响应状态码:', error.response.status);
console.error('响应数据:', error.response.data);
} else if (error.request) {
// 请求已经发出去,但没有收到响应
console.error('没有收到响应');
} else {
// 设置请求时发生了一些事情,触发了错误
console.error('请求设置时发生错误:', error.message);
}
});
2. 使用响应拦截器处理错误:
// 添加响应拦截器
axios.interceptors.response.use(
function (response) {
// 对响应数据做些什么
console.log('响应拦截器:响应成功', response);
return response;
},
function (error) {
// 对响应错误做些什么
console.error('响应拦截器:响应错误', error);
if (error.response) {
// 请求发出去收到响应,但其状态码不在 2xx 范围内
console.error('响应状态码:', error.response.status);
console.error('响应数据:', error.response.data);
} else if (error.request) {
// 请求已经发出去,但没有收到响应
console.error('没有收到响应');
} else {
// 设置请求时发生了一些事情,触发了错误
console.error('请求设置时发生错误:', error.message);
}
return Promise.reject(error);
}
);
在上述示例中:
- 使用 .catch 方法处理请求错误时,error 对象包含了 response、request 和 message 属性,你可以根据这些属性来判断错误类型并进行相应的处理。
- 使用响应拦截器时,error 对象也包含了相似的属性,同样可以用于判断和处理错误。
无论是使用 .catch 方法还是响应拦截器,你都可以根据具体的错误情况进行适当的处理,比如打印错误信息、重新发起请求、跳转到错误页面等。
转载请注明出处:http://www.zyzy.cn/article/detail/6283/Axios