http 415 unsupported media type 多种原因解决方案
http 415 unsupported media type 报错解决方案
·
今天回看SpringMVC ,准备复习一下绑定数据和JSON转换,没想到遇到下面的BUG
看了很多解释,都说是转化的问题,但是我已经JSON 转换了。
错误报告
这是控制台给出的错误
POST http://localhost:8080/mvc/testJson 415 (Unsupported Media Type)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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);
}
}
});
控制层
/**
* 接收页面请求的JSON数据,并返回JSON格式结果
*/
@RequestMapping(value = "/testJson",method =RequestMethod.POST ,consumes = "application/json")
@ResponseBody
public User testJson(@RequestBody User user) {
// 打印接收的JSON格式数据
System.out.println(user);
// 返回JSON格式的响应
return user;
}
解决方法
缺少了一个包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>
总结
415错误码原因:
- 检查你是否已经JSON.stringify
- contentType的值是否为application/json;charset=utf-8
- 看看你的xml ,是否 <context:component-scan base-package=“cn.cg.controller”/> 扫描配置
- 是否导包jackson-databind
- bean实体类中的getter,setter方法是否正确
- 控制台是否使用@ResponseBody 接受
更多推荐
已为社区贡献1条内容
所有评论(0)