拦截去阻止请求后,返回给前端状态,然后前端跳转/处理;
response.sendError() 或 response.sendRedirect();都只适用于前后台部署在一起的项目;要借助内置模板完成.
如果前后台分离,或使用前端渲染,前后台只用json交互的项目就不适合了;
这时需要后台拦截器返回拦截原因/状态码,ajax会在success里面接收到这个响应信息;
这里有一个坑,我被自己坑惨了,应为我前端已经设置过ajax默认的接收到的数据都以json来解析,所以当返回了普通字符串的时候
这个响应消息会在error(xhr) xhr.responseText这个对象中;我忘记了这一点,而拦截的结果有返回json字符串的有返回普通字符串的所以,ajax的结果就是,一会error,一会success,也是醉了
忘了说针对于ajax异步请求,拦截器阻止后返回消息要使用哪种方法了,那就是:
response.getWrite().write("{\"a":1,"b":2}");这种了 ## 这种也不支持跨域,只适合前后台同意容器,使用ajax json 交互前端渲染的模式
至于 使用PrintWrite还是ServelteOutputStream,
使用print()还是write()的,看自己响应的消息形式了;
如果只返回字符串response.getWrite().write();就可以了;
如果返回二进制数据....或者需要字节流传输的再改.
posted on
浙公网安备 33010602011771号