如何使用jQuery $ .ajax发送没有“[]”的数组?

时间:2013-09-17 19:42:49

标签: ajax jquery servlets

如果html表单有多个具有相同名称的输入,则Servlet会将其理解为Array:

形式:

<form>
    User 1:<input name="user" />
    User 2:<input name="user" />
    User 3:<input name="user" />
    <input type="submit" />
</form>

的Servlet

String[] user = request.getParameterValues("user");

但是如果我使用jQuery进行ajax调用,并将数组作为参数发送,它会在属性名称中添加“[]”

使用Javascript:

$.ajax({
    ...
    data:{
        user: ["value1", "value2", "value3"]
    }
});

检查请求的标头,发送数据:

表单数据

user[]=value1&user[]=value2&user[]=value3

我知道我可以在getParameterValues的参数末尾添加[],但我更喜欢jQuery不发送[]

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您希望使用traditional option的传统风格,则需要将param serialization设置为true

$.ajax({
    ...
    data:{
        user: ["value1", "value2", "value3"]
    },
    traditional: true
});

使用此请求将如下所示:

user=value1&user=value2&user=value3