2016-10-18 3 views
0

저는 서버와 자주 통신하는 Angularjs 앱을 만들고 있습니다. 이전에는 보안이 구현되지 않았을 때 보안을 구현해야했습니다.어디서든 오류 잡기 anglejs

즉, 사용자가 수행 할 수없는 작업을 수행하려고 할 때 권한이 부여되지 않은 http 상태 코드를 반환하도록 모든 서버 측 api 호출을 변경했음을 의미합니다.

이제 앱이 서버에 보내는 모든 단일 API 호출을 추적하고 각각에서 동일한 오류를 처리하는 함수를 호출해야합니다. 그러나 나는 "이 페이지가 403 번 권한이없는 응답을받을 때마다이 기능을 수행하십시오."라고 말할 수있는 방법을 찾고자합니다. 나는 가능한 것을 요구하고 있는가?

+0

그래, 당신은 당신이 대답 있는지 확인해야 모든 HTTP 호출을 차단하기 위해 $에 http 인터셉터를 사용하고있다 403s – theTaoOfJS

+0

@theTaoOfJS 처리 할 수 ​​있습니다. –

답변

0

$http 인터셉터를 사용할 수 있습니다. 인터셉터를 추가함으로써 응답을 가로 채어 상태 코드를 확인하고 원래 요구 사항이 통지되기 전에 원하는대로 수행 할 수 있습니다. 예를 들어

Angularjs $http docs

:

app.config(function ($httpProvider) { 
    // it can be added by a explicit factory declaration 
    // angular.module(...).factory('myHttpInterceptor', function ... 
    $httpProvider.interceptors.push(function($q, $state) { 
    return { 
     'request': function(config) { 
     return config; 
     }, 

     'response': function(response) { 
     if(response.statusCode === 403){ 
      $state.go('my.unauthorized.state'); 
      // or maybe 
      // $rootScope.$broadcast('unauthorized'); 
     } 
     return response; 
     } 
    }; 
    }); 
});