-
问题描述:
springboot项目中,过滤器拦截ajax请求,被拦截之后,使用response.sendRedirect("要重定向的url")重定向失败,一直走error。
-
问题分析:
sendRedirect重定向的状态码为302,客户端发出非GET、HEAD请求后,收到服务端的302状态码,那么就不能自动的向新URI发送重复请求,除非得到用户的确认。很多浏览器都把302当作303处理了(获取到HTTP响应报文头部的Location字段信息,并发起一个GET请求)。
-
问题解决:
遇到以上问题时,如果需要进行过滤跳转,可以不在拦截器中进行拦截,将请求放行到接口中,进行相应的验证之后,返回自定以的状态码(如:3020),在前端ajax的方法中进行跳转。