Java 当从ajax调用引发请求时,重定向页面在筛选器中不工作?
我正在使用spring筛选器在会话过期时重定向到登录页面。它在页面刷新调用中运行良好,但我的应用程序中有一个上传选项,这是一个ajax调用。 当用户点击上传按钮时,一旦会话过期,它就不会重定向到登录页面。为什么会这样 请帮我提一些有价值的建议Java 当从ajax调用引发请求时,重定向页面在筛选器中不工作?,java,ajax,spring,session,filter,Java,Ajax,Spring,Session,Filter,我正在使用spring筛选器在会话过期时重定向到登录页面。它在页面刷新调用中运行良好,但我的应用程序中有一个上传选项,这是一个ajax调用。 当用户点击上传按钮时,一旦会话过期,它就不会重定向到登录页面。为什么会这样 请帮我提一些有价值的建议 提前感谢如果您使用的是ajax,那么我认为当您进行部分调用时,页面不会重定向。 更好的方法是,当ajax调用没有返回所需的值并且会话似乎已过期时,仅使用javascript部分刷新页面。下面是代码 location.reload(); 在Java脚本中
提前感谢如果您使用的是ajax,那么我认为当您进行部分调用时,页面不会重定向。 更好的方法是,当ajax调用没有返回所需的值并且会话似乎已过期时,仅使用javascript部分刷新页面。下面是代码
location.reload();
在Java脚本中
//Add here Your Ajax call
//post ajax call
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var res=xmlhttp.responseText;
if(var==1) //checking if response is 1. I'll return 1 if session expires else whatever data makes sense
{
location.reload();
}
else
{
// do stuff you'll do if session exists
}
}
}
Java部分
if(request.getSession()==null)
{
response.getOutputStream().print("1");
}
else
{
//do required stuffs
}
尝试过这一点,但在会话过期时没有使用。页面没有完全执行,即ajax调用没有完成。我对spring filter没有经验,但我想有些地方您必须检查会话是否过期。因此,如果(session==null)在响应流中写入1或0或其他内容,则在ajax代码中使用javascript的if子句检查它,然后重定向,这就是问题所在,我在过滤器中获取所有内容,但重定向在过滤器中不起作用。我使用的是response.sendRidrect(),当我在sesion过期后启动ajax调用时,这个命令不起作用。我添加了另一条注释,看看是否有帮助