JSON 数组的 HTML 表单输入等效项是什么?

What is the HTML form input equivalent for a JSON array?

我正在尝试在 returns CSV 文件的 HTTP POST 端点的请求正文中发送一个 JSON 数组。

var config = {
    foo: ['bar']
}
$http.post(url, config).success(...).error(...);

表示此配置输入的 Java class 如下所示:

@JsonProperty List<String> foo;

上述 $http.post 工作正常,除了我需要打开 CSV 文件的下载提示。我需要支持 IE8,所以我构建了一个类似于 gist.

的表单
var form = $("<form></form>").attr("action", url)
                             .attr("method", "post");
form.append($("<input/>").attr("type", "hidden")
                         .attr("name", "foo[]")
                         .attr("value", "bar"));
form.appendTo($("body"))
    .submit()
    .remove();

上面的代码似乎没有发送格式正确的 JSON 数组供 Jackson 反序列化。根据 Chrome 开发工具,$http.post 版本发送 foo: ["bar"]form 版本发送 foo[]: "bar"

如何使用 HTML 形式 POST 我想要的 JSON 数组?

据我所知没有对应的。您需要 POST 使用 JavaScript 的 HTML 表单,方法是构建(然后在请求中发送)一个 JSON 有效载荷,其值在 HTML 表单中(有点奇怪,但是嘿,你正在发送数据!)。

或者只是 POST 表单并在服务器端构建一个 JSON。