responseInterceptor는 Angular 1.1.4에서 더 이상 사용되지 않습니다. 아래에서 인터셉터를 구현하는 새로운 방법을 보여주는 공식 문서를 기반으로 한 발췌 본을 찾을 수 있습니다 .
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
'response': function(response) {
return response || $q.when(response);
},
'responseError': function(rejection) {
if (canRecover(rejection)) {
return responseOrNewPromise;
}
return $q.reject(rejection);
}
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
이것은 Coffeescript를 사용하여 내 프로젝트에서 어떻게 보이는지입니다.
angular.module("globalErrors", ['appStateModule']).factory "myHttpInterceptor", ($q, $log, growl) ->
response: (response) ->
$log.debug "success with status #{response.status}"
response || $q.when response
responseError: (rejection) ->
$log.debug "error with status #{rejection.status} and data: #{rejection.data['message']}"
switch rejection.status
when 403
growl.addErrorMessage "You don't have the right to do this"
when 0
growl.addErrorMessage "No connection, internet is down?"
else
growl.addErrorMessage "#{rejection.data['message']}"
# do something on error
$q.reject rejection
.config ($provide, $httpProvider) ->
$httpProvider.interceptors.push('myHttpInterceptor')