Иногда API, который я использую, возвращает 200 ok
, хотя произошла ошибка. Объект ответа JSON будет выглядеть примерно так:
{
error: true
}
Я построил перехватчик $http response
, который просто проверяет эту ошибку и отклоняет ее. Я хочу, чтобы он прыгнул в мою функцию responseError
:
$httpProvider.interceptors.push(function($q) {
return {
response: function (response) {
if (response.data.error) {
// There has been an error, reject this response
return $q.reject(response);
}
return response;
},
responseError: function(rejection) {
// Display an error message to the user
...
return $q.reject(rejection);
}
}
});
Проблема в том, что даже после отклонения ответа моя функция responseError
не вызывается. Он вызывается при ошибках 500
и т.д., Поэтому я знаю, что он работает. Я ожидаю, что отказ будет делать то же самое.
Из docs:
responseError: interceptor gets called when a previous interceptor threw an error or resolved with a rejection.
Любые идеи о том, что не хватает?