415 – 不支持的媒体类型
在做springmvc进行json数据交互时,自己测试问题如下:
前台代码:
var params = '{"id": 1,
"name": "测试商品",
"price": 99.9,
"detail": "测试商品描述",
"pic": "123456.jpg"}';
$.post("${pageContext.request.contextPath}/json.action",params,function(data){
},"json");
后台代码:
@RequestMapping("/json.action")
public @ResponseBody Items
parseJson(@RequestBody Items items) {
//导入springmvc支持json的3个jar包
//@RequestBody 将json转化为java对象,可以进行参数封装
//@Response 会将java对象转化为json字符串进行返回
System.out.println(items);
return items;
}
再使用$.post()方法进行ajax请求时,页面报出错,
而后将前台页面代码改成用$.ajax()就可以成功
改后的前台代码:
$.ajax({
url:"${pageContext.request.contextPath}/json.action",
data:params,
contentType:"application/json;charset=UTF-8",//指定发送的数据格式
type:"post",
dataType:"json",
success:function(data){
alert(data.name)
}}
总结:
通过F12,查看request请求
使用$.post(), Content-Type: application/x-www-form-urlencoded,传送给后台的数据格式并不是json
而使用$.ajax(), Content-Type可以自己在方法里面进行指定