Javascript url转发更新div而不是全局重定向

Javascript url转发更新div而不是全局重定向,javascript,ajax,grails,Javascript,Ajax,Grails,一旦会话过期,当用户单击页面中的任何链接时,我必须将我的网站流重定向到登录页面(通过超时或从另一个窗口手动注销) 我在main.gsp中添加了以下代码(包括在每个gsp中) $.ajaxSetup({ 状态代码:{ 401:函数(){ //重定向到登录页面。 location.href=“/gra/login/auth”; } } }); 这在以前工作得很好,但我们在这个阶段对应用程序做了一些更改(oracle迁移、新UI以及spring安全插件) 现在,它不会将整个页面转发到登录页面,但内

一旦会话过期,当用户单击页面中的任何链接时,我必须将我的网站流重定向到登录页面(通过超时或从另一个窗口手动注销)

我在main.gsp中添加了以下代码(包括在每个gsp中)


$.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
               }
           }
       }
   }
}