2012-12-14 3 views
4

요청과 함께 멀티 파트 양식 데이터를 제출할 수 있습니까?d3.json()/d3.xhr()이 포함 된 멀티 파트 게시 요청

here과 같이 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에 설명 된 기능 중 문서화되지 않은 부분이 있습니까? 현재이 문제에 관심이있는 사람이 있습니까?

+0

, 그것은 여전히 ​​좋은 것입니다. 다른 사람이 문제가 생겨서 해결책을 찾고 싶다면 알려주세요. – hushedfeet

+1

해결 방법을 답으로 게시해야합니다. 허용 된 것으로 표시하고 싶지는 않지만 (더 나은 솔루션을 원하는 것처럼 들리므로) 다른 사용자에게 도움이됩니다. –

답변

1

성공적인 멀티 파트 게시에는 세 단계가 있습니다. 당신이 URL에 쿼리 문자열을 지정하는 것처럼

그런 다음 바로 POST 데이터로 보낼 양식 데이터를 헤더를

  • 연결하여 그것을 Content-type: application/x-www-form-urlencoded
  • 인코딩을 추가합니다.

    이 모든 것은 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)); 
    });