传递json数组ajax

时间:2013-07-18 19:54:40

标签: javascript ajax

尝试使用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 lib。

3 个答案:

答案 0 :(得分:9)

您可以使用JSON.stringify(info)创建对象/数组的JSON表示(包括数组数组)。在服务器端,您应该能够通过getParameter获取字符串,然后从JSON中反序列化以创建JSP可以使用的构造。

答案 1 :(得分: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);
    }
});

答案 2 :(得分:1)

您只能在请求网址中提供字符串。

您可以像这样对数组进行编码:

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

然后将其发送到服务器,同时在服务器上进行JSON解析。

您需要转到http://www.json.org/以获得JSON解析的Java实现。