AI智能
改变未来

使用ajax,axios前后台接受JSON类型的问题

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

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

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

{\”USER_ID\”:leader,\”Users\”:users};

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

 

  • 出现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\\\”}\”;

         }     

   }

这里还要注意一个问题,就是javaBean 应该要实现序列化, 在分布式项目中,api层实体类和web/service层并没有依赖关系,是通过double来注册管理的,不实现序列化无法进行传输

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 使用ajax,axios前后台接受JSON类型的问题