2012-12-14 195 views
4

是否有当前与要求提交多形式的数据不支持?多POST请求()

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

看来奇怪的是,我无法找到如何最好地做到这一点的任何资源;我最近来的是https://github.com/mbostock/d3/issues/929https://github.com/mbostock/d3/wiki/Requests,但这些并不真正涵盖多部分形式。

有没有在#929中描述的功能,我无法在d3.v3.js这将允许使用的多形式找到一个无证的一部分?目前有谁正在研究或对此问题感兴趣?

+0

虽然我已经创建了针对此问题的解决方法适合,它仍然会是很好,如果有人支持。如果有其他人遇到此问题并希望致力于提供解决方案,请告诉我。 – hushedfeet

+1

您应该将您的解决方法发布为答案。虽然您可能不想将其标记为已接受(因为听起来您仍然想要更好的解决方案),但它可以帮助需要某些内容的其他人。 –

回答

1

有三个步骤,以一个成功的多职。

  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)); 
});