前端经过ajax能够发送一个json给后端,这时候用springmvc如何处理呢?前端
1 前端代码要指定contenttype为json,而且经过stirngfy将json转为一个字符串ajax
contentType:"application/json", data:JSON.stringify(jsondata),
2 增长jackson的支持spring
<!-- Jackson JSON Mapper --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${jackson.version}</version> </dependency>
3 后端的contrller要用注解@RequestBody 支持json
@RequestBody User jsondata
--在项目里部署后前端会报错400,后台报错为No suitable constructor found for type [simple type, class ]: can not instantiate from JSON object。问题缘由有几种,1是前端的属性和后端的映射类的属性名不对 2是后端映射类是没有构造函数和public的方法 3 或者使用JsonProperty这个注解来处理后端
http://stackoverflow.com/questions/12835911/jackson-jsonmappingexception-due-to-constructormvc
4 fecth api没有办法自动转换app
前端使用了fetch api作异步交互,结果后端的类没有办法正确映射出对应的对象,报错The request sent by the client was syntactically incorrect.异步
前端发送的数据以下函数
Request Payload: {name: "ha", id: 1}
这是由于前端使用body将对象放到request中
opts.body=JSON.stringify(a); opts.method='POST'; return fetch(url, opts)
因此后端参数映射必须也是body
@RequestBody A body