javascript - 在用ajax与后端交互时,如何写data部分比较好?
问题描述
现在用ajax与后端交互的时候,在ajax的data部分,采用的方式是将jq节点一个一个绑定到出参上(如图)。这样的方式在参数少的时候可以应付的过来,但参数多了之后,无论是编码还是维护效率都会变低,在写ajax的data部分时,怎样优化会好一点呢。
$.ajax({ url: '/openapi/test.json', dataType: 'json', type: 'post', formTypeData: true, data: {'keywords': $('.fmc-plate').attr('data-actioncontent'),'openId': localOpenId,'msgType': Msg.msgTypeElem,’msgBody’: Msg.msgBodyElem,'enable': true,'type': 3,'replyType': 3 }, success: function (json) {data = json.data;if (json.success == false) { noty({text: '保存失败,请检查是否填入所有所需数据',layout: 'top',timeout: 3000,type: 'error' }); return false;} else { noty({text: '保存成功',layout: 'top',timeout: 1000,type: 'success' }); $('.fmc-plate').remove(); $noty.close();} }});
问题解答
回答1:将data 为一个json数据form 表单数据使用序列化 $(’#form1’).serialize();节点数据可以先通过对象转化为json数据传到后台
一维数组 var data = {} data[’id’] = 1; data[’type’] = 2; 二维数组 var data = {}; var child1 = data[1] = {}; var child2 = data[2] = {}; child1[’id’] = 1; child1[’type’] = 2; child2[’id’] = 2; ... 上面的数据还是对象,不能直接使用 转为 json JSON.stringify(data) 回答2:
用jquery就简单了,用serialize()
html
<form id='form1'> <input type='hidden' name='name1' value='name1' /> <input type='hidden' name='name2' value='name2' /></form>
js
$(’#form1’).serialize();