springMVC拦截器处理ajax请求及数据返回

来源:互联网 发布:网络用语yx什么意思 编辑:程序博客网 时间:2024/05/17 22:21

正常情况下,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。
原创粉丝点击