ssm(spring+springmvc+mybatis)发起ajax请求前后端交互数据问题与解决方案
Posted il_持之以恒_li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssm(spring+springmvc+mybatis)发起ajax请求前后端交互数据问题与解决方案相关的知识,希望对你有一定的参考价值。
1.ajax发起无参的ajax请求返回任意类型的数据
通常这种请求最为简单,不会报错,如下:
jsp界面
controller
运行结果
能在浏览器控制台正常返回结果。
2.ajax发起有参的ajax请求返回任意类型的数据
jsp界面
controller
运行结果
后端能成功接收到数据
浏览器控制台能正常显示后端返回的数据
3.ajax发起有参(且参数为某一个对象类型)的ajax请求返回任意类型的数据
jsp界面
如果我们想直接把对象作为参数传入到后端去,那么需要把data数据转换成json格式,否则后端识别不了。另外,需要设置contentType:“application/json”
controller
这里记得添加@RequestBody注解,否则传过来的对象属性值都为null。
运行结果
如果读者使用ssm或者其他框架发起ajax请求出现错误,不知道解决办法可以到评论区留言啊!小编会及时回答的(小编其实也是遇到很多问题的,刚开始搞ajax请求的时候,觉得很简单,但是做项目是总是报一些奇怪的错误,比如400,这是一个比较奇怪的错误了,主要但是被我们那个老师误导了,就是小编在第2点讲到的那个,如果参数不是object类型,data根本不需要转换成json格式的数据类型。你一转换,后端就识别不了,从而导致后端接收到的数据为null,后者直接报错)
当然,如果是参数类型为object,需要导入以下三个依赖,如下,否则在编译的时候直接报错了。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
以上是关于ssm(spring+springmvc+mybatis)发起ajax请求前后端交互数据问题与解决方案的主要内容,如果未能解决你的问题,请参考以下文章
后端SSM(Spring + SpringMVC + Mybatis)框架整合
SSM(Spring + Springmvc + Mybatis)框架面试题