d3.json()/ d3.xhr()的多部分发布请求

时间:2012-12-14 22:54:20

标签: json d3.js

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

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

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

我是否在d3.v3.js中找不到允许使用多部分表单的#929中描述的功能的无证部分?是否有人正在研究或对此问题感兴趣?

1 个答案:

答案 0 :(得分:3)

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

  1. 添加标题Content-type: application/x-www-form-urlencoded
  2. 对表单数据进行编码
  3. 将其连接,就好像您在URL中指定查询字符串一样
  4. 然后将其作为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));
    });