Springmvc前台通过ajax传值到后台用@RequestBody接收,报415400错误

xiaoxiao2021-02-28  58

传普通数据没太大问题,就是传json格式的数据在后台转化为javaBean有点问题

需求:前台传json格式的数据,后台用@RequestBody转换为对应的javaBean,

1:首先json里的数据应该对应javaBean里的属性,否则肯定会报错,举个栗子

{"USER_ID":leader,"Users":users};

上面这个格式的数据,在对应的JavaBean里一定要有String USER_ID;String Users;这两个属性,就是包含的关系

2:出现415/400问题的原因是前台传到后台或者后台传到前台的数据格式不正确,格式应该都为application/json(前台接受的都为json,text不讨论)

解决方法:

first:首先保证这里没有配错

springmvc.xml

<!-- 启用spring mvc 注解-->     <mvc:annotation-driven> <!-- 启动JSON格式的配置 -->     <mvc:message-converters>     <!-- 这里也可以自己定制class -->         <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">             <property name="supportedMediaTypes">                 <list>                     <value>text/html;charset=UTF-8</value>                        <value>application/json</value>                  //服务器支持json格式的数据,后台传到前台再次设置                 </list>             </property>         </bean>     </mvc:message-converters>     </mvc:annotation-driven>

second:

var saveData ={"USER_ID":leader,"Users":users};      $.ajax({             type : "POST",             url : "XXXX",             data : JSON.stringify(saveData),             contentType : "application/json",              //发送至服务器的类型                dataType : "json",                                     //预期服务器返回类型               success : function(data) {                 alert(data.msg);             },error:function(data){             alert(data.msg);             }         });

third:

@RequestMapping(value ={ "/xxx"}, method = { RequestMethod.POST}) @ResponseBody    public String save(@RequestBody JavaBean类型 aaa) throws Exception {        log.info("ajax");

        int i=xxxService.xxx(aaa);         String massage;         if(i>0){                 return "{\"msg\":\"success\"}";          //json格式         }else{                 return "{\"msg\":\"fail\"}";         }            }

标红的比较关键

转载请注明原文地址: https://www.6miu.com/read-32378.html

最新回复(0)