后端
代码
后端可能的第一个错误你没有@RequestBody
我们知道我们项目多采用restful风格所以当某一个后端接口接收一个对象是,参数前面通常加注解@RequestBody
如:
@RequestMapping("/addUser")
public User addUser(@RequestBody User user){
return userService.addUser(user);
}
pom.xml
后端可能的第二个错误你没有相关的jar
ssm 后端项目也要引入4个依赖才能避免 415
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.5</version>
</dependency>
前端ajax代码
前端第一个坑 关闭默认contentType类型,设置新的类型
前端的这个更坑 ,因为你很可能没有关闭ajax默认的数据提交方式( contentType: false)
前端第二个坑,没有使用 JSON.stringify
function myajax(url,data,type){
$.ajax({
type:type,
url:baseUrl+url,
data: JSON.stringify(data),
//关闭默认的contentType(默认的形式是表单)
contentType: false,
/设置新的contentType
contentType:'application/json; charset=utf-8',
//预期服务器返回数据的类型
dataType: 'json',
xhrFields: { withCredentials: true },
success:function(data){
},
error:function(jqXHR){
}
});
}