1.问题描述
最近在使用Shiro框架时,遇到了一个问题。
当登录退出为Ajax请求时,使用Shiro的logout退出登录,会发生302重定向,导致不能正常退出。
$.ajax({
type:"post",
url:"logout"
})
2.解决方案
在网上找了许多解决方法,大部分方案都是重写LogoutFilter过滤器。
个人又觉得太麻烦,研究了一下问题主要出现在Ajax请求上。
如果不是Ajax请求,是没有问题的,浏览器可以正常跳转到登陆画面。
如果是jQuery Ajax请求,则ajaxComplete事件最终拿到的response status是redirect之后的status,即访问登陆画面后的响应状态200。
我们直接从根源解决问题,不使用ajax请求,直接用使用链接跳转,成功登出跳转到登录界面。
window.location.href:"logout"