想用springmvc来传递json数据然后返回,不知道为什么报错415,如下图:ajax代码:
user对象:
controller代码:
浏览器调试:
出错页面:请问究竟是什么问题导致的???网上说的办法好像都不行
1.已经添加jackson-mapper-asl-1.9.13.jar和jackson-core-asl-1.9.13.jar两个包
2.springmvc.xml中已经写了<mvc:annotation-driven></mvc:annotation-driven> 自动注册驱动
3.data使用data:JSON.stringify('{name:"xiaoming",age:18}'), 依然报同样的错,没有效果
user对象:
controller代码:
浏览器调试:
出错页面:请问究竟是什么问题导致的???网上说的办法好像都不行
1.已经添加jackson-mapper-asl-1.9.13.jar和jackson-core-asl-1.9.13.jar两个包
2.springmvc.xml中已经写了<mvc:annotation-driven></mvc:annotation-driven> 自动注册驱动
3.data使用data:JSON.stringify('{name:"xiaoming",age:18}'), 依然报同样的错,没有效果
'data' : JSON.stringify(data),这样试试
我之前就去掉过 ‘ ’,传递{'name':'xiaoming','age':18}也没有作用
我之前就去掉过 ‘ ’,传递{'name':'xiaoming','age':18}也没有作用
{'name':'xiaoming','age':18}
这样写才是一个json数据,然后你再在ajax中加入一个属性dataType:json你试试
dataType : 'json',
contentType: "application/json",
data:JSON.stringify(rows[0]),自己看看是不是没有指定DataType的类型
用这个:$.ajax({
url: "/",
type: 'post',
dataType: 'json',
contentType: 'application/json;charset=utf-8',
data: JSON.stringify({name: 'xiaoming', age: 12}),
})
报的错是传进来的参数和requestbody注解的参数不匹配,应该还没到返回json数据的那一步
我用的是jackson-all,
jackson-annotations,
jackson-databind,
jackson-coreps.all包含(mapper)
如果没有进入这个方法:
1.是不是因为接收参数出问题了,这个时候,你就先将@ResponseBody User user改为String name。
假如成功了,那么代表参数有问题,如果还没成功。
用这个js试一下:$.post(url,{name:"123"},function(data){console.info("SUCCESS")})
<script type="text/javascript">
$(document).ready(function(){
var saveDataAry=[];
var data1={"userName":"test","address":"gz"};
var data2={"userName":"ququ","address":"gr"};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:"POST",
url:"user/saveUser",
dataType:"json",
contentType:"application/json",
data:JSON.stringify(saveData),
success:function(data){
}
});
});
</script> Java代码
@RequestMapping(value = "saveUser", method = {RequestMethod.POST }})
@ResponseBody
public void saveUser(@RequestBody List<User> users) {
userService.batchSave(users);
}
dataType:"json"Java类加上
@RequestMapping(value = "/jsonTest",consumes = "application/json")
重点在consumes = "application/json"
1:要在配置里面增加<mvc:annotation-driven />
2:需要在ajax里面增加contentType:"application/json"
3:需要添加jacksonJSON-all-1.9.8.jar包但是我这3中方法都试过了,任然包错415楼主解决了这个问题能分享下么,tks!
你这个是response 他那个是request 不一样的.
返回 一个对象 的时候 需要 加上response body
1、试试让你的User类继承Serializable
2、传过去的data不要外层的单引号 data:{ name:value1,age:value2 }
试试
dataType : "json",
在把contentType去掉,这个不用写,后台的代码不用更改。
//请求是json,输出是json
function requestJson(){
alert("data");
$.ajax({
type:'post',
url:'${pageContext.request.contextPath}/requestJson.do',
contentType:'application/json;charset=UTF-8',
data:'{"name":"iphone6","price":"5210"}',
success:function(data){//返回json结果
alert(data);
console.log(data.name);
console.log(data.price);
}
});