javascript - otherwise - routeprovider angularjs



AngularJs routeProvider http status 403 (1)

Interceptores AngularJS - actualizado a v1.4.2

Los interceptores son fábricas de servicios que se registran con $ httpProvider al agregarlos a la matriz $ httpProvider.interceptors. La fábrica se llama e inyecta dependencias (si se especifica) y devuelve el interceptor.

Para leer más: $ http angularjs Doc

Sección config (parte de ella)

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

Respuesta - fábrica de observadores

403.html y 500.html son archivos HTML existentes, con un bonito estilo y contenido de ayuda para el usuario.

.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);
        }
    };
});

Para ampliar el conocimiento sobre los interceptores: http://djds4rce.wordpress.com/2013/08/13/understanding-angular-http-interceptors/

Estoy haciendo autenticación y autorización en el lado del servidor.

En angularJs estoy haciendo el enrutamiento utilizando el routeProvider como este.

$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: '/'
        });

Y aquí está el problema a resolver, cuando obtengo un 403 angular, no se muestra la página del servidor, simplemente no hace nada.

¿Alguien tiene una sugerencia de cómo manejar esto?





angularjs-routing