【问题标题】:How to send array without "[]" using jQuery $.ajax?如何使用 jQuery $.ajax 发送没有“[]”的数组?
【发布时间】:2013-09-17 19:42:48
【问题描述】:

如果一个 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 不发送 []

我该怎么做?

【问题讨论】:

    标签: ajax jquery servlets


    【解决方案1】:

    如果你想使用param serialization的传统风格,你需要将traditional option设置为true

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

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

    user=value1&user=value2&user=value3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-20
      • 2013-03-19
      • 2020-10-23
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多