当模板请求返回401重定向

时间:2016-07-06 17:59:53

标签: javascript php angularjs laravel

我有一个angularjs / laravel Web应用程序,其中模板包含动态加载。

问题在于,当用户的会话超时并且他们导航到页面上的新部分时,它将在服务器端进行重定向,并实际返回模板本应存在的登录页面。

如何拦截此模板请求,而是将用户重定向到登录页面,而不是简单地将登录页面作为模板返回?

1 个答案:

答案 0 :(得分:0)

在一个项目中,我们使用这种拦截http错误的方式。在那里你可以重定向到登录页面(或任何你喜欢的)。

function httpInterceptor($provide, $httpProvider) {
    function interceptorFunction($q) {
        return {
            responseError: function (rejection) {
                if (typeof rejection.status !== 'undefined') {
                    if (rejection.status === 401) {
                        //Your app will handle 401 errors here... 
                    } 
                }
                return $q.reject(rejection);
            }
        };
    }

    $provide.factory('httpInterceptor', interceptorFunction);
    interceptorFunction.$injector = ['$q'];
    $httpProvider.interceptors.push('httpInterceptor');

 angular.module('app', dependencies)
    .config(httpInterceptor);

'应用'模块是我们的主要'模块。 401错误应该发生,因此服务器应该至少一次响应该状态代码。