routeprovider route otherwise javascript security http-status-code-403 angularjs-routing

javascript - otherwise - AngularJs routeProvider http status 403



otherwise angularjs (1)

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?


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/