javascript - 在用ajax與后端交互時,如何寫data部分比較好?
問題描述
現(xiàn)在用ajax與后端交互的時候,在ajax的data部分,采用的方式是將jq節(jié)點一個一個綁定到出參上(如圖)。這樣的方式在參數(shù)少的時候可以應(yīng)付的過來,但參數(shù)多了之后,無論是編碼還是維護效率都會變低,在寫ajax的data部分時,怎樣優(yōu)化會好一點呢。
$.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: '保存失敗,請檢查是否填入所有所需數(shù)據(jù)',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數(shù)據(jù)form 表單數(shù)據(jù)使用序列化 $(’#form1’).serialize();節(jié)點數(shù)據(jù)可以先通過對象轉(zhuǎn)化為json數(shù)據(jù)傳到后臺
一維數(shù)組 var data = {} data[’id’] = 1; data[’type’] = 2; 二維數(shù)組 var data = {}; var child1 = data[1] = {}; var child2 = data[2] = {}; child1[’id’] = 1; child1[’type’] = 2; child2[’id’] = 2; ... 上面的數(shù)據(jù)還是對象,不能直接使用 轉(zhuǎn)為 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();
