【问题标题】:What is the HTML form input equivalent for a JSON array?JSON 数组的 HTML 表单输入等效项是什么?
【发布时间】:2015-04-21 18:28:42
【问题描述】:

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

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

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

@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 表单发布我想要的 JSON 数组?

【问题讨论】:

  • 没有等价物,表单不能产生 JSON,只有 www-urlencoded 数据。

标签: java javascript jquery json jackson


【解决方案1】:

据我所知,没有等价物。您需要使用 JavaScript 通过构造(然后在请求中发送)具有 HTML 表单中的值的 JSON 有效负载来POST HTML 表单(有点奇怪,但是嘿,您正在发送数据!)。

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

【讨论】:

    猜你喜欢
    • 2010-09-22
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多