1. 程式人生 > >ajax傳遞陣列或者list時的traditional屬性

ajax傳遞陣列或者list時的traditional屬性

之前沒有用到過此屬性,前端傳遞陣列後端使用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接受即可。非常方便。