通常的,可能有些人在一個參數有多個值的狀況下,可能以某個字符分隔的形式傳遞,好比頁面上有多個checkbox: java
$.ajax{ url:"xxxx", data:{ p: "123,456,789" } }而後後臺獲取參數後再分隔,這種作法有很大弊端,試問若是某一個參數值中出現了分隔符所使用的字符,會出現什麼狀況呢?固然後臺獲取的參數將與實際狀況不符.
$.ajax{ url:"xxxx", data:{ p: ["123", "456", "789"] } }若是單純寫成這樣,在java後臺是沒法取到參數的,由於jQuery須要調用jQuery.param序列化參數,
jQuery.param( obj, traditional )默認的話,traditional爲false,即jquery會深度序列化參數對象,以適應如PHP和Ruby on Rails框架,
p: ["123", "456", "789"] => p=123&p=456&p=456隨即,咱們就能夠在後臺經過request.getParameterValues()來獲取參數的值數組了,
var values = $("input[type=checkbox]").map(function(){ return $(this).val(); }).get(); $.ajax{ url:"xxxx", traditional: true, data:{ p: values } }