文章目录
今天回看SpringMVC ,开发公司准备复习一下绑定数据和JSON转换,开发公司没想到遇到下面的BUG
开发公司看了很多解释,开发公司都说是转化的问题,但是我已经JSON 转换了。
错误报告
这是控制台给出的错误
POST http://localhost:8080/mvc/testJson 415 (Unsupported Media Type)
- 1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BvAENJUA-1658548787606)(D:\软考\Snipaste_2022-07-23_11-47-02.png)]
项目配置
检查你是否已经JSON.stringify
contentType的值是否为application/json;charset=utf-8
看看你的xml ,是否 <context:component-scan base-package=“cn.cg.controller”/> 扫描配置
function testJson(){ // 获取输入的用户名和密码 var username = $("#username").val(); var password = $("#password").val(); $.ajax({ url : "${pageContext.request.contextPath }/testJson", type : "post", // data表示发送的数据 data :JSON.stringify({username:username,password:password}), // 定义发送请求的数据格式为JSON字符串 contentType : "application/json;charset=UTF-8", //定义回调响应的数据格式为JSON字符串,该属性可以省略 dataType : "json", //成功响应的结果 success : function(data){ if(data != null){ alert("您输入的用户名为:"+data.username+ "密码为:"+data.password); } } });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
控制层
/** * 接收页面请求的JSON数据,并返回JSON格式结果 */@RequestMapping(value = "/testJson",method =RequestMethod.POST ,consumes = "application/json") @ResponseBodypublic User testJson(@RequestBody User user) { // 打印接收的JSON格式数据 System.out.println(user); // 返回JSON格式的响应 return user;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
解决方法
缺少了一个包
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.3</version></dependency>
- 1
- 2
- 3
- 4
- 5
总结
415错误码原因:
- 检查你是否已经JSON.stringify
- contentType的值是否为application/json;charset=utf-8
- 看看你的xml ,是否 <context:component-scan base-package=“cn.cg.controller”/> 扫描配置
- 是否导包jackson-databind
- bean实体类中的getter,setter方法是否正确
- 控制台是否使用@ResponseBody 接受