最近遇到的一个问题记录下
项目从struts2 换成springMVC 是遇到的问题
var params = {
'id': 1,
'itemId': itemId,
'shopId': shopId,
'sourceId': sourceId,
'shopId': shopId,
'startTime': startTime,
'endTime': endTime;'giveawaysDetailList': {
'quantity': quantity,
'itemId': itemId,
'id': id
}
}
$.ajax({
type:'POST',
url:url,
data:params ,
dataType: "json",
success:function(result){ }
struts2下 ajax 传递给后台的对象可以得到
MVC 下报 415 Unsupported Media Type
分析下请求头,原来是json格式没转换
giveawaysDetailList[0][id... | 284 |
解决方法 ajax 按照json传递
$.ajax({
type:'POST',
url:url,
data:JSON.stringify(params),
contentType: "application/json; charset=utf-8",
dataType: "json",
success:function(result){
}
MVC Controller 注解加上@RequestBody 不加得到数据
public Object save(@RequestBody Giveaways mode){}
tips: 两种方式 一种是传json字符串 另一种是传json对象- 传json字符串的话springmvc controller 接收参数对象需要加上@RequestBody注解 来实现json字符串到对象的转换
另外ajax需要加上contentType:“application/json;charest=utf-8”
- 传JSONObject 的话不需要注解 但是当对象中含有子对象时子对象会得不到值
相关文章:http://what-is-javascript.iteye.com/blog/1735691
http://blog.youkuaiyun.com/kobejayandy/article/details/12690555