在和后台同事对接口的时候,有一个小问题一直困扰着我。那就是用ajax请求后台接口数据,

  需要用data属性传值的时候,data属性传值的方式感觉没有统一用一种方式。

  后来仔细想想,其实哪种方式都可以,主要还是看你的个人习惯或者公司对这一块是否有明确的用法规定。

  以下是我把实际项目中看到的方式做了一个汇总——

 

①:属性加引号

data: {"channelOrgCode":channelOrgCode}

 

②:属性也可以不加引号

data: {channelOrgCode:channelOrgCode}

 

③:拼接数据(拼接数据就不用像上面包在{}里面了)

data:"page="+page+"&size="+size+"&startDate="+startDate+"&endDate="+endDate

 

④:组装数据,然后赋值给一个变量,在用JSON.stringify()把js对象转化为json字符串

 var pList = [{id:productId,ptType:ptType,num:num}];
$.ajax({
    url: "tdOrderController.do?addOrderItem",
    data: {
        pList: JSON.stringify(pList)
    },
    type: "post",
    dataType: "json",
    success: function(d) {
        if (!d.success) {
            mui.toast(d.msg);
            return false;
        } else {
            carNum();
        }
    }
});

 

⑤:也可以把data赋值给一个变量,在用JSON.parse()将json字符串转化为一个js对象

var dataTemp = {
    year: year,
    month: month,
    chooseNum: 1
};

$.ajax({
    url: "tdMonthlyPlanCTConfirmController.do?approveMonthlyPlan",
    type: 'post',
    data: dataTemp,
    dataTpye:"json",
    success: function(data) {
        var d = JSON.parse(data);
        if (d.success) {
            mui.toast(d.msg);
            centerSearch();
        } else {
            mui.toast(d.msg);
            return;
        }
    },
    error: function() {
        tip("客户端请求错误", 'error');
        return false;
    }
});

 

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

附:JSON.parse()JSON.stringify()介绍