正常情況下,springMVC的攔截器的response.sendRedirect是可以跳轉的。但是,如果前端用的ajax請求,則response.sendRedirect不能正常跳轉。
ajax有自己獨立的請求頭x-requested-with,加上springMVC有一套自己的機制處理ajax請求。
if (req.getHeader("x-requested-with")!= null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){//如果是ajax請求響應頭會有x-requested-with
ServletOutputStreamout = rep.getOutputStream();
out.print("unlogin");//傳回給前端頁面的未登陸辨別
out.flush();
out.close();
return false;
}else{
Stringindexurl=content+"/index.html";
rep.sendRedirect(indexurl);
returnfalse;
}
特别注意:springMVC預設用的是outputStream,是以在向外輸出的時候,一定不能用getPrintWriter。