/*global angular*/
(function () {
'use strict';
angular
.module('App')
.factory('httpErrorResponceInterceptor', ['$q', '$injector', '$rootScope', '$log',
httpErrorResponceInterceptor]);
/**
* Интерсептор для перехвата ответов сервера, которые содержат ошибку.
* Реализует обработку ошибочных ответов сервера (http кодов).
* Реагирует только на коды 400, 401, 403, 404, и 500
*
* @name httpErrorResponceInterceptor
*/
function httpErrorResponceInterceptor($q, $injector, $rootScope, $log) {
var self = {};
self.responseError = function (response) {
if (response.status == 401){
return $q.reject(response);
}
else if (response.status == 400){
return $q.reject(response);
}
else if (response.status == 403) {
return $q.reject(response);
}
else if (response.status == 404) {
return $q.reject(response);
}
else if (response.status == 500) {
return $q.reject(response);
}
return $http(response.config);
};
return self;
}
})();
Меняйте объект response и возвращайте ))
Вырезал из проекта и убрал лишний код, поэтому куча if-ов