在和后台同事对接口的时候,有一个小问题一直困扰着我。那就是用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()
介绍
有需要的朋友可以领取支付宝到店红包,能省一点是一点