Javascript url转发更新div而不是全局重定向
一旦会话过期,当用户单击页面中的任何链接时,我必须将我的网站流重定向到登录页面(通过超时或从另一个窗口手动注销) 我在main.gsp中添加了以下代码(包括在每个gsp中)Javascript url转发更新div而不是全局重定向,javascript,ajax,grails,Javascript,Ajax,Grails,一旦会话过期,当用户单击页面中的任何链接时,我必须将我的网站流重定向到登录页面(通过超时或从另一个窗口手动注销) 我在main.gsp中添加了以下代码(包括在每个gsp中) $.ajaxSetup({ 状态代码:{ 401:函数(){ //重定向到登录页面。 location.href=“/gra/login/auth”; } } }); 这在以前工作得很好,但我们在这个阶段对应用程序做了一些更改(oracle迁移、新UI以及spring安全插件) 现在,它不会将整个页面转发到登录页面,但内
$.ajaxSetup({
状态代码:{
401:函数(){
//重定向到登录页面。
location.href=“/gra/login/auth”;
}
}
});
这在以前工作得很好,但我们在这个阶段对应用程序做了一些更改(oracle迁移、新UI以及spring安全插件)
现在,它不会将整个页面转发到登录页面,但内容仅在目标容器中刷新,该容器通过单击链接进行更新(注销页面仅位于该div中)
这就是它在没有上述代码的情况下的工作方式。
如何使此页面成为全局转发页面
更新:我刚刚在firebug中检查了它,发现在会话超时后单击一个链接
是否生成302(临时移动)代码作为响应而不是401?这是使用grails过滤器的一项出色任务 下面的代码将拦截所有控制器和所有操作,并调用它们,检查会话是否有效。如果失败,它将重定向到登录页面 您应该更改
if
语句中的条件,以适当地检查会话
class SecurityFilters {
def filters = {
sessionCheck(controller: '*', action: '*') {
before = {
if (!session && !actionName.equals('login')) {
redirect(uri: '/gra/login/auth')
return false
}
}
}
}
}
不,不是。。我不使用iframe..它的嵌套div
class SecurityFilters {
def filters = {
sessionCheck(controller: '*', action: '*') {
before = {
if (!session && !actionName.equals('login')) {
redirect(uri: '/gra/login/auth')
return false
}
}
}
}
}