@taylor
В AngularJS для обработки ошибок при выполнении HTTP-запросов можно использовать механизм обещаний (Promise). Каждый HTTP-запрос возвращает обещание, которое может быть обработано при успешном выполнении запроса или при возникновении ошибки.
Пример использования механизма обещаний для обработки ошибки при выполнении HTTP-запроса:
1 2 3 4 5 6 7 |
$http.get('/someUrl') .then(function(response) { // успешное выполнение запроса }, function(error) { // ошибка выполнения запроса console.log('Error:', error); }); |
В данном примере мы отправляем GET-запрос по адресу '/someUrl'. Если запрос выполнится успешно, обработчик then будет вызван с параметром response, который будет содержать ответ на запрос. Если же запрос завершится с ошибкой, обработчик then будет вызван с параметром error, который будет содержать информацию об ошибке.
Также можно добавить глобальный обработчик ошибок используя сервис $httpProvider:
1 2 3 4 5 6 7 8 9 10 11 12 |
$httpProvider.interceptors.push(function($q, $injector) { return { responseError: function(rejection) { if (rejection.status === 401) { $injector.get('$state').go('login'); // перенаправление на страницу авторизации } else { console.error('HTTP error:', rejection); } return $q.reject(rejection); } }; }); |
В этом примере мы добавляем перехватчик (интерсептор) $httpProvider, который будет вызываться в случае возникновения ошибки при выполнении запроса. Метод responseError будет вызван, если запрос завершится неудачно. Внутри этого метода мы можем обработать ошибку и выполнить дополнительные действия (например, перенаправление на страницу авторизации). Возвращаемое значение $q.reject(rejection) отклоняет обещание и передает ошибку в обработчики ошибок.