为啥 logoutController 从不调用? [复制]
Posted
技术标签:
【中文标题】为啥 logoutController 从不调用? [复制]【英文标题】:why logoutController never calls? [duplicate]为什么 logoutController 从不调用? [复制] 【发布时间】:2019-11-22 02:57:08 【问题描述】:单击注销按钮后,相关控制器不会调用,因此永远不会发生注销活动。
我已经使用 AngularJs 和 Spring boot 和 Security 编写了一个登录页面,在登录但注销时无法正常工作。
我刚刚粘贴了文件和页面的相关部分。
index.html
<nav class="navbar navbar-default">
<div class="container-fluid">
<div ng-show="authenticated">
<a href="#/"
class="btn btn-info navbar-btn"
role="button">
Home
</a>
<a href="#/register-new-user"
class="btn btn-info navbar-btn"
role="button">
Register New User
</a>
<a href="#/list-all-users"
class="btn btn-info"
role="button">
List All Users
</a>
**<a href="#/logout"
class="btn btn-danger navbar-btn pull-right"
role="button">Logout
</a>**
</div>
</div>
</nav>
app.js 路由写入的 URL
.when('/login',
templateUrl : '/login/login.html',
controller : 'loginController'
)
**.when('/logout',
templateUrl : '/login/login.html',
controller : 'logoutController'
)**
.otherwise(
redirectTo : '/login'
);
controller.js 将请求发布到 Spring Security。
app.controller('logoutController', function($rootScope, $scope, $http, $location, $route)
console.log("inside of logout controller...");
$scope.logout = function()
$http.post('logout', ).finally(function()
$rootScope.authenticated = false;
$location.path("/");
);
);
【问题讨论】:
【参考方案1】:去掉封闭函数,让路由器实例化控制器时立即执行POST请求:
app.controller('logoutController', function($rootScope, $scope, $http, $location, $route)
console.log("inside of logout controller...");
̶$̶s̶c̶o̶p̶e̶.̶l̶o̶g̶o̶u̶t̶ ̶=̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶(̶)̶ ̶̶
$http.post('logout', ).finally(function()
$rootScope.authenticated = false;
$location.path("/");
);
̶̶
);
【讨论】:
删除该行并没有帮助,因为它永远不会到达 logoutController ,这就是为什么我把 console.log 放在里面看它是否进入。List All Users
和 Register New Users
按钮是否有效?
不,他们没有,因为我还没有写他们的控制器,我只有 homeController、loginController 和 logoutController,除了 logoutController...我给他们打电话了?
编辑 href 基于 ***.com/questions/41211875/… 从 到 解决了这个问题...谢谢。以上是关于为啥 logoutController 从不调用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥 touchesbegan:在使用 UIPinchGestureRecognizer 后从不会在 UIView 上被调用?
RxSwift:为啥 flatMapLatest 从不执行 onCompleted()?
通过 SAML 登录 Grails 应用程序时,无法访问 LogoutController 中的 UserDetailsService