Подтвердить что ты не робот

AngularJs routeProvider http status 403

Я выполняю аутентификацию и авторизацию на стороне сервера.

В angularJs я делаю маршрутизацию с помощью routeProvider, как это.

$routeProvider.
        when('/', {
            templateUrl: 'partials/_home',
            controller: 'HomeCtrl'
        }).
        when('/home', {
            templateUrl: 'partials/_home',
            controller: 'HomeCtrl'
        }).
        when('/users', {
            templateUrl: 'partials/_users',
            controller: 'UserCtrl'
        }).
        when('/users/:id', {
            templateUrl: 'partials/_userForm',
            controller: 'UserCtrl'
        }).
        otherwise({
            redirectTo: '/'
        });

И вот проблема для решения, когда я получаю 403 angular, не отображается страница сервера, она просто ничего не делает.

enter image description here

Было ли у кого-то предложение о том, как с этим справиться?

4b9b3361

Ответ 1

AngularJS Interceptors - обновлено до версии 1.4.2

Перехватчики - это сервисные заводы, зарегистрированные в $httpProvider, путем добавления их в массив $httpProvider.interceptors. factory вызывается и вводится зависимостями (если задано) и возвращает перехватчик.

Подробнее: $http angularjs Doc

Конфигурация раздела (его часть)

.config(function ($httpProvider) {
    $httpProvider.interceptors.push('responseObserver');
})

Ответ - наблюдатель factory

403.html и 500.html являются существующими HTML файлами, красивыми с некоторым содержимым справки для пользователя.

.factory('responseObserver', function responseObserver($q, $window) {
    return {
        'responseError': function(errorResponse) {
            switch (errorResponse.status) {
            case 403:
                $window.location = './403.html';
                break;
            case 500:
                $window.location = './500.html';
                break;
            }
            return $q.reject(errorResponse);
        }
    };
});

Чтобы расширить знания о перехватчиках: http://djds4rce.wordpress.com/2013/08/13/understanding-angular-http-interceptors/