1. 程式人生 > >jQuery通過ajax傳送陣列的問題

jQuery通過ajax傳送陣列的問題

$.ajax等api在我剛開始使用的時候,以為僅僅能傳送form表單,後來慢慢才知道,原來還能傳送簡單的一個字串或者是多個數組!如果是陣列的話,只需要在struts2後臺,建立一個List<String>陣列同名就可以自動封裝了,很是方便。當時遇到很多問題,現在有空回頭整理一下ajax傳送陣列的問題。結合查詢了多個BLOG,這裡集中總結:

(1)查詢到的BLOG

最近在用jQuery的ajax方法傳送請求時需要傳送一個數組作為引數,結果在後臺接收的時候發現接收不到這個陣列。程式碼時這樣的:

1 var arr = []
2 arr.push(“aaa”);
3 arr.push(“bbb”);
4 arr.push(“ccc”);
5 $.ajax({
6 url:”a.html”,
7 data:{“arr”:arr},
8 type:”post”
9 });
檢視firebug的網路資訊,發現傳送的post資訊中的陣列資訊為&arr[]=aaa&arr[]=bbb&arr[]=ccc。多了一對方括號,所以在servlet中不能通過request.getParameter(‘arr’)獲取到正常的陣列引數。

google之後發現,需要在data引數裡,加一個traditional:true的引數,這樣就能正常傳送陣列引數了。
原因時從1.4以後,jQuery改變了引數的序列化方法。

(2)關於上一篇提到的traditional引數的解釋的,另一篇blog

一般的,可能有些人在一個引數有多個值的情況下,可能以某個字元分隔的形式傳遞,比如頁面上有多個checkbox:

1 $.ajax{
2 url:"xxxx",
3 data:{
4 p: "123,456,789"
5 }

相關推薦

jQuery通過ajax傳送陣列的問題

$.ajax等api在我剛開始使用的時候,以為僅僅能傳送form表單,後來慢慢才知道,原來還能傳送簡單的一個字串或者是多個數組!如果是陣列的話,只需要在struts2後臺,建立一個List<String>陣列同名就可以自動封裝了,很是方便。當時遇到很多問題,現

jQuery——通過Ajax傳送資料

Ajax(Asynchronous JavaScript and XML,非同步JavaScript和XML),一個Ajax解決方案涉及如下技術: JavaScript:處理與使用者及其他瀏覽器相關事件的互動,解釋來自伺服器的資料,並將其呈現在頁面上。 XM

jquery的each方法取值ajax傳送陣列 php取得值

HTML檔案程式碼 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

[jQuery] 通過ajax保存到服務器,成功顯示信息.

cti jquery code 成功 jquer .ajax save OS ati 保存數據到服務器,成功時顯示信息。 jQuery 代碼: $.ajax({ type: "POST", url: "some.php", data: "nam

通過ajax傳送post請求向controller傳遞引數後,頁面無法跳轉問題

我的專案之前都是用location.href來向後臺傳遞引數,因為最近在學習ajax,所以將傳值方式改成了ajax傳送post請求,於是問題便接踵而來,我發現在controller中通過返回ModelAndView物件竟然不能實現頁面跳轉了,剛開始百思不得其解,現在總算明白這到底是怎麼一回事了,也想

jquery通過ajax方法獲取本地json檔案不執行success回撥

//a.json { list:{ createtime:"2018/11/05 16:45:22", status: 0, name: "aa", price: "188.00", num: "2", img: "1.jpg" } }

前端通過ajax陣列到後端失敗的解決方法

前幾天做專案,由於獲取的資料是內容長度都不定,所以需要傳一個數組到後端。 var array = [tom, bob, jack]; $.ajax({ url: basePath + "/deme", data: array, type: POST,

jquery通過ajax在jsp中區域性重新整理頁面

在jquery中ajax的呼叫已經非常方便了。也提供了一些新的呼叫方式。 這裡有兩個 在jsp中區域性重新整理頁面 的例子。 一種是json返回內容再拼接 html  一種是直接返回 一個jsp 到另一個jsp中 這裡的框架用的是springMVC 其它框架 類推 js

jquery通過ajax-json訪問java後臺傳遞引數,通過request.getParameter獲取不到引數的說明

Java後臺伺服器是apache-tomcat-6.0.37 正常的post請求(不包括ajax請求)在http頭中的content-type為application/x-www-form-urlencoded,這時在java後臺可以通過request.getPara

通過JQuery實現Ajax代碼

type ucc post 今天 url syn function .ajax true 今天早上遇到了這個問題,結果我寫的順序是慘不忍睹啊,所有現在留個模版以示標準。 $(function(){   $.ajax({     url : "Servlet",    //傳

SpringMVC通過ajax傳遞引數list物件或傳遞陣列物件到後臺

環境 前臺傳遞引數到後臺 前臺使用ajax 後臺使用springMVC 傳遞的引數是N多個物件 JSON物件和JSON字串 在SpringMVC環境中,@RequestBody接收的是一個Json物件的字串,而不是一個Json物件。然而在aja

jQuery-select2通過ajax請求獲取遠端資料

1. 預設傳送的查詢引數 term : The current search term in the search box. q : Contains the same contents as term. _type: A “request type”.

ajax post傳送陣列以及java後臺接收陣列

1 需要的包   1.1 jquery包   2  json包 (  maven 配置 ) <dependency> <groupId>net.sf.json-li

jquery ajax提交陣列引數時traditional的作用

原文地址:小時刻個人部落格http://small.aiweimeng.top/index.php/archives/traditional.html 在一些簡單的專案中ajax傳到後臺的引數都是以鍵值對的形式傳輸; 例如: data:{ "id":1, "name

有了html頁面,進行二次顯示,通過html、JavaScript、jQueryajax三種技術,我可以實現任何介面效果

當前j2ee的web工程開發, 最常用的前端顯示技術,有兩種:html、jsp。 場景: 以html為例,當用戶執行了某個操作,j2ee的web工程反饋了一個html頁面給使用者(其實不是這麼簡單,中間有渲染的過程,這裡略過,就當使用者得到了一個html頁面)。例如點選“新

兩種方式解決jquery Ajax 傳送中文亂碼的方法,

    查過網上有很多方法,但很多都不成功,可能是因為在不環境下的區別吧! 首先,必須保證前臺後臺的編碼統一,其次在連線資料庫時的url也要指定編碼。 第一:簡單直接,修改頁面 data:{ use

jqueryajax方式傳送AJAX請求

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="content-type" content="text/html;charset=utf-8" > 5

jQuery $.ajax傳遞陣列的traditional引數傳遞必須true

起初我認為traditional:true,可有可無,但是後來不用traditional的時候,發現後臺無法獲取selectUsers的值,那麼可以肯定的是traditional預設值是false.當提交的引數是陣列( {selectUsers:[value,value,value]} ),如果是false的

python flask 通過ajax向後臺傳遞陣列引數

ajax 像後臺傳遞引數,一般是字典的形式傳遞,但是如果字典的value的值是一個數組的話,通過request.form  獲取得到的結果是 None。這是就需要把陣列物件轉化為json字串,後臺才可

通過Ajax請求後臺資料,返回JSONArray(JsonObject),頁面(Jquery)以table的形式展示

點選“會商人員情況表”,彈出層,顯示一個表格,如下圖: 利用Ajax和Jquery和JSONArray和JsonObject來實現: 程式碼如下: 在hspersons.html中: <!DOCTYPE html> <html> <head&g