1

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

形式:

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

小服务程序:

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

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

Javascript:

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

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

表格数据

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

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

我怎样才能做到这一点?

4

1 回答 1

2

如果您希望使用传统的参数序列化样式,您需要将traditional选项设置为:true

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

使用它,您的请求将如下所示:

user=value1&user=value2&user=value3
于 2013-09-17T19:48:32.427 回答