vlambda博客
学习文章列表

在ajax中data主要有几种方式

1. ajax中data主要有几种方式?


三种,html拼接的,json数组,form表单经serialize()序列化的。

form表单经serialize()作用:对表单元素进行序列化处理,得到编码后的字符串

使用方式:可是获取整个form表单的序列化值也可以获取单独某个表单元素的序列值参数:无参数

HTML缺点:拼接麻烦  还容易拼错  可维护性差

Json优缺点:

1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端javascript可以简单的通过eval()进行JSON数据的读取
缺点:
1. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性2. JSON格式目前在Web Service中推广还属于初级阶段PS: 据说Google的Ajax是使用 JSON+模板 做的

在ajax中data主要有几种方式


用ajax请求后台接口数据,需要用data属性传值的时候,data属性传值的方式感觉没有统一用一种方式 后来仔细想想,其实哪种方式都可以,主要还是看你的个人习惯或者公司对这一块是否有明确的用法规定。

//第一种写法(把参数拼接在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('异常'); }

});

 }

//第二种写法(参数写成json数据形式)

    function getFormInfo(){

        $.ajax({

         url: 

         type: "POST",

         data:{

            name:'chem',

            user:'wen'

         },

         cache:false,

         dataType: "json",

         success: function(data){

         },

          error:function(err){

          }

        });

    }

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

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

//代码如下

    function getFormInfo(){

        var params=$('#login').serialize(); //把id为login的form表单里的参数自动封装为参数传递

        console.log(params);

        $.ajax({

         url: 

         type: "POST",

         data:params,

         cache:false,

         dataType: "json",

         success: function(data){

       },

          error:function(err){

          }

        });

    }

//第四种写法(拼接data)

    function getFormInfo(){

        var name='chen';

        var user='wen';

        $.ajax({

         url: 

         type: "POST",

         data:'name='+name+'&user='+user,

         cache:false,

         dataType: "json",

         success: function(data){

              },

          error:function(err){

          }

        });

    }

五:form表单经serialize()序列化的。

$('#form1').serialize()

注:data不需要传值的时候,data:{},就可以了。也可以不写,但为了规范,最好还是写上。