博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery.Ajax()的data参数类型大总结
阅读量:4298 次
发布时间:2019-05-27

本文共 4204 字,大约阅读时间需要 14 分钟。

 使用AJAX提交表单参数的各种方式表单如下:

方式1:

    数据为文本类型文本: “UNAME =艾丽斯&mobileIpt = 110&生日= 1983年5月12日”

方式2:

    数据为json对象。{uanme:'vic',mobileIpt:'110',生日:'2013-11-11'}

方式3:

    数据为JSON数组。

[    {"name":"uname","value":"alice"},    {"name":"mobileIpt","value":"110"},       {"name":"birthday","value":"2012-11-11"}]

方式4:

JSON字符串,形如 

 {“name”:“uname”,“age”:18}

注意,这个地方不是JSON对象,是JSON字符串,字符串。这样,在后台就可以直接注入到对象中。

当你需要向后台提交一组对象时时,JSON字符串的好处就体现出来了(对象数组)。

一般都是用交的方法传递参数。

写法:

$.ajax({    type: 'post',    url: 'aaa/bbb.do',    contentType: 'application/json;charset=utf-8',    data: '{"name": "uname", "age": 18}',    success: function (data) { //返回json结果        alert(data);    }});

方式5:

     把参数拼接在URL中,data属性设为空{ }

 

function getFormInfo(){        var name='wen';        var user='chen';        $.ajax({         url: "/login/authenticate?name="+name+"&user="+user,         type: "POST",         data:{},         dataType: "json",         success: function(data){                       },          error:function(err){            console.log(err.statusText);            console.log('异常');          }        });    }

方式6:

   根据表单id属性,把表单封装数据,调用JQuery的serialize()方法序列化为字符串。

   前提是:发送请求的必须是一个form表单,而且表单内要做参数的标签必须具有name属性,因为name属性会被认为请求参数名

  

//代码如下    function getFormInfo(){        var params=$('#login').serialize(); //把id为login的form表单里的参数自动封装为参数传递        console.log(params);        $.ajax({         url: "http://192.168.10.32:6833/login/authenticate",         type: "POST",         data:params,         cache:false,         dataType: "json",         success: function(data){                       },          error:function(err){          }        });    }

方式7:

  拼接data。

function getFormInfo(){        var name='chen';        var user='wen';        $.ajax({         url: "http://192.168.10.32:6833/login/authenticate",         type: "POST",         data:'name='+name+'&user='+user,         cache:false,         dataType: "json",         success: function(data){                       },          error:function(err){          }        });    }

方式8:

   表单序列化为json数据。 需要引入:<script type="text/javascript" src="serializeJSON.js"></script>

function getFormInfo(){        var params=$('#login').serializeJSON();        console.log(params);        $.ajax({         url: "http://192.168.10.32:6833/login/authenticate",         type: "POST",         data:params,         cache:false,         dataType: "json",         success: function(data){                       },          error:function(err){          }        });    }

方式9:

  表单序列化为json数据,既有全部直接获取表单中的数据又有单独出来的数据。

function getFormInfo(){        var params=$('#login').serializeJSON();        console.log(params);        params.height='20';  //附加json元素        $.ajax({         url: "http://192.168.10.32:6833/login/authenticate",         type: "POST",         data:params,         cache:false,         dataType: "json",         success: function(data){                       },          error:function(err){          }        });    }

  

实例:

   假如现在有这样一个表单,是添加元素用的。

  

基本的实现方式--json对象

function addUser(){        var user = {            uname:$("#uname").val(),            mobileIpt:$("#mobileIpt").val(),            birthday:$("#birthday").val()        };        $.ajax({            url:'UserAdd.action',            data:user,            type:'post',            dataType:'text',            success:function(msg){                if(msg=='1'){                    console.log('添加成功');                }else{                    console.log('添加失败')                }            }                     })    }

另一种处理方式--jquery的serializeArray方法

序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。注意,此方法返回的是JSON对象而非JSON字符串。需要使用插件或者第三方库进行字符串化操作。返回的JSON对象是由一个对象数组组成的,其中每个对象包含一个或两个名值对——name参数和value参数(如果value不为空的话)。

使用方法测试

$('#addForm').serializeArray();//返回数据结构,是json数组,每个对像分别name和value为key,代表这个表单元素的name和value[    {"name":"uname","value":""},    {"name":"mobileIpt","value":""},       {"name":"birthday","value":""}]

使用JQuery.param()方法处理一下

var arr = $('#addForm').serializeArray();$.param(arr);"uname=alice&mobileIpt=110&birthday=1983-05-12"

这样就转成文本的形式进行传输了。

转载地址:http://ixnws.baihongyu.com/

你可能感兴趣的文章
判断时间或者数字是否连续
查看>>
docker-daemon.json各配置详解
查看>>
Mac 下docker路径 /var/lib/docker不存在问题
查看>>
Docker(一)使用阿里云容器镜像服务
查看>>
Docker(二) 基础命令
查看>>
Docker(三) 构建镜像
查看>>
Spring 全家桶注解一览
查看>>
JDK1.8-Stream API使用
查看>>
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
查看>>
vue中的状态管理 vuex store
查看>>
Maven之阿里云镜像仓库配置
查看>>
Maven:mirror和repository 区别
查看>>
微服务网关 Spring Cloud Gateway
查看>>
SpringCloud Feign的使用方式(一)
查看>>
SpringCloud Feign的使用方式(二)
查看>>
关于Vue-cli+ElementUI项目 打包时排除Vue和ElementUI
查看>>
Vue 路由懒加载根据根路由合并chunk块
查看>>
vue中 不更新视图 四种解决方法
查看>>
MySQL 查看执行计划
查看>>
OpenGL ES 3.0(四)图元、VBO、VAO
查看>>