ajax异步请求 后台用Spring的@RequestBody接受java对象

今天遇到错误代码:415不支持的媒体类型。

Failed to load resource: the server responded with a status of 415 (Unsupported Media Type)
1
以前都没遇到这个情况,今天突然遇到,就花了点时间测试整理下

1.首先我们要知道@RequestBody 是用来干嘛的:接受一个JSON’字符串’注意是 字符串 不是JSON对象,如果有与之对应的java实体,会帮助自动转化成java对象。
下面是我遇到的415的错误代码:
前台:一个非常简单的ajax

var student = {
    "name":1,
    "age":2,
    "score":3
}
$.ajax({                                
    url:"student/test/delStudentByPrimaryKey.action",
    type:'POST',
    dataType:'json',//json 返回值类型
    data: JSON.stringify(student),//转化为json字符串
    success:function(data){
    }
});

后台:一个非常简单的接口

@RequestMapping(value = "/delStudentByPrimaryKey")
void deleteByPrimaryKey(@RequestBody Student student){
        System.out.println(student);
}

原本我也认为这样没问题,也按照要求转成JSON字符串了
但是爆炸了:依然415。如下 这是为什么呢???经查是因为下图红框的请求类型不对,默认是图中类型


然后前台改为:
把context-Type改为application/json;charset=UTF-8
告诉后台 我发送的是JSON字符串,并且后台用@RequestBody接受它,
你就要帮我把他转成对应的实体对象。

$.ajax({                                
    url:"student/test/delStudentByPrimaryKey.action",
    contentType:"application/json;charset=UTF-8",
    type:'POST',
    dataType:'json',//json 返回值类型
    data: JSON.stringify(student),//转化为json字符串
    success:function(data){
    }
});

成功:

————————————————

原文链接:https://blog.csdn.net/weixin_38362455/article/details/78936964

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值