在SpringMVC中用@RequestBody接收Json的问题,总是报415,经过一翻查找
前台js的post:
var postdata = '{"title":"这是一个标题","describe":"这是一个描述"}'; $.ajax({ type : 'POST', contentType : 'application/json', url : '/home/requestbodybind', processData : false, dataType : 'json', data : postdata, success : function(data) { alert('title : '+data.title+'\ndescribe : '+data.describe); }, error : function() { alert('error...'); } });
该有的都有
后台:
@RequestMapping(value = "modelautobind", method = RequestMethod.POST) public String modelAutoBind(HttpServletRequest request, @ModelAttribute("accountmodel") NewsModel newsModel, @ModelAttribute("sessionaccountmodel") NewsModel newsModel1) { newsModel.setTitle("视图"); newsModel1.setTitle("session视图"); //model.addAttribute("accountmodel", newsModel); return "modelautobind";//视图名字 }
网上说需要加入 consumes = "application/json",加了 还是一样报错,后面去掉后也没影响
springmvc的配置文件中有:<mvc:annotation-driven />
后来有查到对json的解析需要引入
com.fasterxml.jackson.core jackson-databind 2.5.3
在springmvc配置中用得到
加上重新跑,这时通过
以上就是整个解决过程。