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接受即可。非常方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章