SpringMVC对Ajax请求的处理
[1] 问题:
当浏览器发起一个ajax请求给服务器,服务器调用对应的单元方法处理ajax请求。
而ajax的请求在被处理完成后,其处理结果需要直接响应。而目前我们在单元方 法中响应ajax请求,使用的是response对象,需要我们自己将要响应的数据转换 为json字符串响应,比较麻烦,而我们一直希望在单元方法中无论是否是ajax请 求,都使用return语句来完成资源的响应,怎么办?
[2] 解决:
既然我们希望使用单元方法的返回值来响应ajax请求的处理结果,而目前 DispatcherServlet的底层会将单元方法的返回值按照请求转发或者重定向来处理, 所以就需要我们告诉DispatcherServlet,单元方法的返回值不要按照请求转发或者
重定向处理,而是按照直接响应处理,将单元方法的返回值直接响应给浏览器。
[3] 代码示例:
- 导入jackson的jar
- 声明单元方法处理ajax请求,并在单元方法上新增注解@ResponseBody
注意:
把我们要响应的数据直接return即可,并且,返回值类型为要return
的数据类型。
在ajax的回调函数中,,无需再次使用eval函数将响应数据转换为json对象
直接使用即可。