我的服务器返回json错误,响应为200-我无法更改它。
例如,响应:
{
errors: [{ code: "unauthorized" }]
}
另一个没有错误的响应也会返回200状态:
{
data: [{ id, name... }]
}
我使用axios
发出http请求以获取数据。
axios({
url: '//www.mocky.io/v2/5d862b16320000f16d07b36b',
method: 'GET'
}).then(…).catch(…)
在任何错误到达catch
之前,我想在拦截器中处理此错误。 (例如,如果错误是401,则重定向)
所以我构建了这个拦截器,但是我无法触发错误功能。
axios.interceptors.response.use((response: any) => {
if (response.data.errors) { throw new Error(response.data.errors); return; }
return response;
}, (error) => {
console.log('here I want to handle all my errors before it invoke in catch function!'); // <------------
return Promise.reject(error);
});
我该如何解决?
代码:
import axios from 'axios';
axios.interceptors.response.use((response: any) => {
console.log({ interceptor: response.data.errors });
if (response.data.errors) { throw new Error(response.data.errors); return; }
return response;
}, (error) => {
console.log('here I want to handle all my errors before it invoke in catch function!');
return Promise.reject(error);
});
axios({
url: '//www.mocky.io/v2/5d862b16320000f16d07b36b',
method: 'GET',
//responseType: 'json'
})
.then(function (response) {
// handle success
console.log({ response });
})
.catch(function (error) {
// handle error
console.log({ error });
})
.finally(function () {
// always executed
});