2013-07-18 59 views
1

嘗試使用ajax調用傳遞數組。傳遞json數組ajax

info = []; 
info[0] = 'hi'; 
info[1] = 'hello'; 

$.ajax({ 
    type: "POST", 
    data: {info: info, "action": "getPatientRecords"}, 
    url: "/mobiledoc/jsp/ccmr/webPortal/carePlanning/servicePatientmilestoneModal.jsp", 
    success: function(msg) { 
     $('.answer').html(msg); 
    } 
}); 

但是當我嘗試使用捕捉它在服務器端: 的request.getParameter(「信息」); //顯示null **

另外,如果我想發送一個數組數組?可能嗎?

我試過使用序列化,但是我的IE拋出錯誤,序列化:對象不支持這個屬性我有包括jQuery的庫。

+0

info ['hi','hello'] ...使用這個insted你正在使用的東西,那是一個古老的wat去做數組。 –

+0

您需要將您的json數據串聯起來。 – maketest

+0

JSON.stringify(info); –

回答

9

您可以使用JSON.stringify(info)創建對象/數組(包括數組數組)的JSON表示。在服務器端,您應該能夠通過getParameter獲取字符串,然後從JSON反序列化它以創建JSP可以使用的構造。

+0

噢,是的......這是正確的方法;) – PaoloCargnin

2

是的,可以發送數組。

var info_to_send = ['hi','hello']; 

$.ajax({ 
    type: "POST", 
    data: {info: info_to_send, "action": "getPatientRecords"}, 
    url: "/mobiledoc/jsp/ccmr/webPortal/carePlanning/servicePatientmilestoneModal.jsp", 
    success: function(msg) { 
     $('.answer').html(msg); 
    } 
}); 
+0

爲什麼你不使用:'var info = ['hi','hello'];'? – Shawn31313

+0

如你所願先生! –

+0

它在服務器端顯示爲空。的System.out.println(用request.getParameter( 「信息」)); // NULL – user1908568

1

您只能在請求url中提供字符串。

您可以在陣列編碼就像這樣:

info = JSON.stringify(info); 
// results in "['hi', 'hello']" 

然後將其發送到服務器,也JSON解析服務器上。

您將需要去http://www.json.org/獲得JSON解析的Java實現。