详解Ajax与SpringMVC的415错误,到底带不带@ReuqestBody注解?

本文详细分析了在使用Ajax与SpringMVC时遇到的415错误,主要原因是前端发送的Content-Type与后台不匹配。文章通过前后端问题的排查,指出@RequestBody注解的Controller方法只能接收Json字符串,并提供了解决方案——将数据序列化为JSON格式。同时,讨论了在Ajax请求中添加额外属性和去掉@RequestBody注解的影响,以及何时使用@RequestBody注解的考虑因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

415错误

4xx类错误属于前端的请求错误,通常都是Http报文无法被后台响应,后台判断前端的参数不正确等,而415错误定义为

Unsupported Media Type 服务器无法处理请求附带的媒体格式

错误发生的环境

ajax发起的请求

$.ajax({
   
    url: "http://localhost:8080/account/",
    type: "POST",
    dataType: 'json',
    data: {
   
        username: $('#username').val(),
        password: $('#password').val()
    },
    success: function (res) {
   
        if (res.code == 1) {
   
            $('#redirect').attr('href', '../catalog/Main.html');
            document.getElementById('redirect').click();
        } else {
   
            $('#newAccountMessage').text(res.msg);
        }
    },
    error: function (res) {
   
        $('#newAccountMessage').text(res.msg);
    }
})

后台的Controller的Restful API

当然这和是不是rest没有关系,rest仅仅是一种架构方式和设计规范罢了,在这个场景中是无关的

@PostMapping("")
@ResponseStatus(HttpStatus.CREATED)
public PlatformResult createAccount(@Validated(CreateGroup.class) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值