美文网首页
工作记录之前后端交互序列化提交json数据

工作记录之前后端交互序列化提交json数据

作者: 绮罗生_33f2 | 来源:发表于2019-10-25 10:39 被阅读0次

https://blog.csdn.net/qq_37209834/article/details/102737565

问题描述

后端要求以RequestBody 接收数据,由于 表单数据过多,用ajax每个数据参数单独传获取比较麻烦,决定使用serializeArray()或serialize()函数获取全部需传的参数。

第一次处理:

var arrObj = $("#applyForm").serializeArray();

        $.ajax({

            url:url,

            type:'post',

            dataType:'json',

            data:JSON.stringify(arrObj),

            success:function(data){

            }

            })

结果:失败,状态码415,不支持的类型。后台无法接收数据,

原因:arrObj经过serializeArray()之后实际变量变为{“name":“Lastname”,“value”:“王”,“name”:“sex”,“vlaue”:“女”},而json格式应该要求为{“Lastname”:“王”,“sex”:“女”}

第二次处理:

      var arrObj = $("#applyForm").serializeArray();

      var jsonObj = serializeJson(arrObj);

        $.ajax({

            url:url,

            type:'post',

            dataType:'json',

            contentType:'application/json',

            data:JSON.stringify(jsonObj),

            success:function(data){

            }

        })

        ......

        //序列化对象转json格式

    function serializeJson(arrObj){

        var obj={};

      $(arrObj).each(function(){

          if(obj[this.name]){

              if($.isArray(obj[this.name]) && this .value!=""){

                  obj[this.name].push(this.value);

              }else{

                  if(this .value != ""){

                      obj[this.name]=[obj[this.name],this.value];

                  }

              }

          }else{

              if(this .value != ""){

                  obj[this.name]=this.value;

              }

          }

      });

      return  obj;

    }

结果:可以接收serializeJson(arrObj)将变量转化为了json格式

去除RequestBody,即后台不要求以json格式接收对象

var arrObj = $("#applyForm").serialize();

        $.ajax({

            url:url,

            type:'post',

            dataType:'json',

            data:arrObj,

            success:function(data){

            }

            })

结果:成功,此处serialize()将表单参数转化为了形如 fristname=王&sex=女

注意

contentType:‘application/json’,可以向后台发送json格式

总结

知识点:

序列化和反序列化

Json语法规则:

1)数据在键值对中

2)数据由逗号分隔

3)花括号保存对象

4)方括号保存数组

contentType:‘application/json’

form-data和request pagload

状态码415的含义和场景

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

版权声明:本文为CSDN博主「刀映绮罗」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_37209834/article/details/102737565

相关文章

  • 工作记录之前后端交互序列化提交json数据

    https://blog.csdn.net/qq_37209834/article/details/1027375...

  • python中的ajax

    前端与后端的数据交互,最常用的就是GET、POST,比较常用的用法是:提交表单数据到后端,后端返回json 前端的...

  • 前端与后端的数据交互(jquery ajax+python fl

    前端与后端的数据交互,最常用的就是GET、POST,比较常用的用法是:提交表单数据到后端,后端返回json 前端的...

  • Serializers组件

    为什么要序列化组件? 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的...

  • Serializers 序列化组件

    为什么要用序列化组件呢当我们做前后端分离的项目~~我们前后端交互一般会选择JSON数据格式,JSON是一个轻量级的...

  • 枚举类型与前端,数据库交互

    1. 单个枚举作为字段与前端交互: (1)后端序列化枚举值给前端: (2)后端反序列化前端的json转为枚举值: ...

  • 2018-02-08

    前端与后端的数据交互 前端与后端的数据交互,最常用的就是GET、POST,比较常用的用法是:提交表单数据到后端,后...

  • SpringBoot 表单参数校验

    在前后端分离如此盛行的今天,普遍使用 Json 进行数据交互,为了保证数据的完整与有效性,我们一般会在前端提交数据...

  • Json解析中@SerializedName注解妙用

    现在前后端通信交互普遍采用的是JSON格式数据传输,因此就需要解析JSON数据了。而如果前后端沟通不多,难免造成数...

  • PHP中JSON的使用

    学习目的 掌握并且能够使用json数据格式进行通信交互 理解json格式和serialize序列化、xml、数组的...

网友评论

      本文标题:工作记录之前后端交互序列化提交json数据

      本文链接:https://www.haomeiwen.com/subject/ieqsvctx.html