对于Ajax的Request,如果在Servlet中直接用sendRedirect或者forward想实现页面的跳转,是行不通的(可能返回的ResponseText会是所跳转页面的源代码)。所以要想在Ajax的调用下实现页面的跳转就需要通过Servlet在返回的头信息中设置一个标志位,然后通过页面的JS实现跳转。
Servlet设置头信息:
response.setHeader("REQUEST_AUTH", "1");
在页面JS中实现分析跟跳转:
if(xmlHttpReq.readyState == 4){
if(xmlHttpReq.status == 200){
if(xmlHttpReq.getResponseHeader("REQUEST_AUTH")!=null&&xmlHttpReq.getResponseHeader("REQUEST_AUTH")=="1"){
window.location("index.jsp");
}else{
//do something
}
}