jQuery ajax的traditional参数的作用
生活随笔
收集整理的這篇文章主要介紹了
jQuery ajax的traditional参数的作用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般的,可能有些人在一個參數有多個值的情況下,可能以某個字符分隔的形式傳遞,比如頁面上有多個checkbox: $.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框架,? 但servelt api無法處理,我們可以通過設置traditional 為true阻止深度序列化,然后序列化結果如下: p: ["123", "456", "789"] => p=123&p=456&p=456 隨即,我們就可以在后臺通過request.getParameterValues()來獲取參數的值數組了,? 所以,比如我們前臺有多個checkbox,前臺的代碼可以寫成:? var values = $("input[type=checkbox]").map(function(){return $(this).val();
}).get();
$.ajax{url:"xxxx",traditional: true,data:{p: values }
}
轉載于:https://www.cnblogs.com/dingjing0518/p/6823907.html
總結
以上是生活随笔為你收集整理的jQuery ajax的traditional参数的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转-eclipse管理多个workspa
- 下一篇: string的内存管理问题