ajax傳遞陣列或者list時的traditional屬性
阿新 • • 發佈:2018-12-14
之前沒有用到過此屬性,前端傳遞陣列後端使用list或Array接收時,或出現格式不正確,eg:[["1111","2222"]]
後來查資料才知道有這個屬性
$(function () { $("#deleteSelect").click(function () { var res = $.ajax({ url: "/SpringMybatis/user/deleteBySelective", data: {data: chk_value}, // traditional: true, 這裡的取值後面說明 success: function () { console.log(res.responseText) loadData(); }, error: function () { console.log(res.responseText) } }) }); });
traditional預設是false,如果是false,則傳遞的引數為:
data[]:1
......
這裡設定為true,使傳遞引數變成:
data:1
......
當traditional預設是false時,使用陣列或list接收都是[["1111","2222"]]格式
當traditional預設是true時,使用陣列或list接收都是["1111","2222"]格式
traditional這個屬性預設是false,jquery會深度序列化這個物件,我們可以通過設定tradtional為true阻止深度序列化
這樣以後碰到複選框傳多個id的時候就不用前臺拼後臺spilt了,直接用ajax的traditional屬性,傳過去一個數組,後臺直接一個List<Long> idList接受即可。非常方便。