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();
