5

目前是否不支持通过请求提交多部分表单数据?

我了解如何使用 d3.json().post() 执行 POST,如此处所述但我想使用 POST 通过 multipart/form-data 将参数提交给 API。

我找不到任何关于如何最好地做到这一点的资源,这似乎很奇怪;我最接近的是https://github.com/mbostock/d3/issues/929https://github.com/mbostock/d3/wiki/Requests但这些并没有真正涵盖多部分表格。

是否有我在 d3.v3.js 中找不到的 #929 中描述的功能的未记录部分允许使用多部分表单?是否有人目前正​​在研究或对这个问题感兴趣?

4

1 回答 1

3

成功的多部分帖子需要三个步骤。

  1. 添加标题Content-type: application/x-www-form-urlencoded
  2. 编码表单数据
  3. 像在 URL 中指定查询字符串一样连接它

然后将其作为 POST 数据发送。

这些都不是 d3 特有的,但我想我会给出我的答案和一些示例代码,因为我来到这里。

示例代码:

var xhr = d3.xhr(post_url)
    .header("Content-type", "application/x-www-form-urlencoded");

xhr.post("arg1=" + encodeURIComponent(arg1) + "&arg2=" + encodeURIComponent(arg2),
  function(error, result) {
    if(error)
        throw new Error(error);
    read_paths.data(JSON.parse(result.responseText));
});
于 2016-05-03T20:38:47.820 回答