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

En angularJs estoy haciendo la ruta usando 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 llego a un 403 angular no está mostrando la página del servidor, simplemente no hacer nada.

AngularJs routeProvider de estado http 403

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

  • Error 403 «Ejecutar el acceso prohibido» – intente abrir URL /test/partials/_userForm – ¿qué tienes en la respuesta? No tiene nada en común con AngularJS, es su servidor. Lo que usted espera de Angular si 403 sucede? Redirigir a algunos página de inicio de sesión?
  • Sí, es la respuesta del servidor, lo que quiero es mostrar el contenido de ese error 403 página. pero angulares no muestra nada cuando se pone ese error.
  • Usted desea mostrar esta plantilla o manejar el error 403?
  • El error 403 página que mi servidor de proporcionar.
  • Estoy mirando el mismo error, pero quiero mostrar la plantilla, ¿cuál es la mejor práctica para manejar esta situación?
InformationsquelleAutor Charlires | 2014-07-30

1 Comentario

  1. 38

    AngularJS Interceptores – actualizado a v1.4.2

    Los interceptores son el servicio de fábricas que están registrados con el $httpProvider mediante la adición de ellos a los $httpProvider.los interceptores de la matriz. La fábrica se llama y se inyecta con dependencias (si se especifica) y devuelve el interceptor.

    Leer más: $http angularjs Doc

    La sección de configuración (parte de ella)

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

    Respuesta de los observadores de la fábrica

    403.html y 500.html existen archivos HTML, agradable de estilo con un poco de ayuda de contenido 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);
            }
        };
    });

    De ampliar el conocimiento acerca de los interceptores: http://djds4rce.wordpress.com/2013/08/13/understanding-angular-http-interceptors/

    • Wow, gracias, gracias, esto es lo que yo estaba buscando.
    • Me alegro de oír eso, feliz de codificación
    • No añadir $window como una dependencia? De lo contrario, funciona.
    • gracias por los ojos : )
    • Funciona como un encanto ! Yo uso $ubicación en lugar de $ventana

Dejar respuesta

Please enter your comment!
Please enter your name here