2012-12-14 239 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)); 
});