1
我有一个angularjs/laravel web应用程序,其中模板包含动态加载。当模板请求返回时,如何使用Laravel将用户重定向到登录页面401重定向
问题是,当用户的会话超时并且他们导航到页面上的新节时,它将在服务器端进行重定向,并实际返回模板应该在的登录页面。
如何拦截此模板请求,而不是将用户重定向到登录页面,而不是简单地将登录页面作为模板返回?
我有一个angularjs/laravel web应用程序,其中模板包含动态加载。当模板请求返回时,如何使用Laravel将用户重定向到登录页面401重定向
问题是,当用户的会话超时并且他们导航到页面上的新节时,它将在服务器端进行重定向,并实际返回模板应该在的登录页面。
如何拦截此模板请求,而不是将用户重定向到登录页面,而不是简单地将登录页面作为模板返回?
在一个项目中,我们使用这种截取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);
'app'模块是我们的'main'模块。应该发生401错误,尽管服务器应至少一次以该状态码作为响应。
好的,谢谢。我其实只是实现了这一点,还没有测试过它。但是,这是否也会拦截laravel请求?即拦截所有http请求而不是通过$ http服务创建的请求? – Dmac
这肯定会拦截每个$ http请求。我不知道你可以使角度应用程序不会使用$ http的Ajax调用。 $资源是依赖于$ HTTP也......如果你做一个香草的JavaScript调用它可能无法捕捉它(但为什么) – Rouz
问题是与laravel @include不与角模板,虽然... – Dmac