在ssm框架中使用@RequestBody,发送请求出现415错误(fastjson)

1 篇文章 0 订阅
今天做毕设的时候发现,在前端向后台发送一个json对象(字符串),后端用@RequestBody匹配接受的时候就会出现415 错误。

在这里插入图片描述
前端ajax请求:

$.ajax({
      type:"post",
      url:"/user/register",
      dateType: "json",
      contentType : 'application/json;charset=utf-8',
      data : JSON.stringify(regData),
      success: function (resp) {
         alert(resp);
      }
   });

后台java代码:

	@ResponseBody
    @PostMapping("/register")
    public String register(@RequestBody RegisterUser registerUser){
        System.out.println(registerUser);
        return "注册成功";
    }




查了很多博客资料,最后发现问题是出现在json字符串解析转换为java对象上。



我的项目用的是 【 fastjson 】

解决办法:修改spring-mvc.xml配置文件:

   <!-- 开启SpringMVC注解的支持 -->
    <mvc:annotation-driven>
        <!-- 解决 json 乱码 -->
        <mvc:message-converters register-defaults="true">
        	<bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                        <value>application/xml;charset=UTF-8</value>
                    </list>
                </property>
                <property name="features">
                    <list>
                        <!-- 默认的意思就是不配置这个属性,配置了就不是默认了 -->
                        <!-- 是否输出值为null的字段 ,默认是false-->
                        <value>WriteMapNullValue</value>
                        <value>WriteNullNumberAsZero</value>
                        <value>WriteNullListAsEmpty</value>
                        <value>WriteNullStringAsEmpty</value>
                        <value>WriteNullBooleanAsFalse</value>
                        <value>WriteDateUseDateFormat</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

参考:
https://www.cnblogs.com/boywwj/p/7441642.html
https://blog.csdn.net/qq_34500957/article/details/80523200
https://blog.51cto.com/7629052/1927256
https://blog.csdn.net/qq_37171353/article/details/77986422

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值