后端ssm 前端ajax contextType 415不支持媒体类型问题总结

后端

代码

后端可能的第一个错误你没有@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){ 
        }
});
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值