天天看點

springMVC攔截器處理ajax請求及資料傳回

正常情況下,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。

繼續閱讀