2016-08-11 3 views
0

페이지의 해당 표에 대한 CSV 파일을 다운로드해야합니다. 다운로드 후 아무런 조치를 취할 필요가 없습니다. 단지 내보내기라고 말하면서 데이터가 CSV 파일로 다운로드됩니다. 백 엔드 코드가 준비되었지만 POST를 사용하여 어떻게 수행합니까?POST FORM/AJAX를 사용하여 파일을 다운로드 하시겠습니까?

많은 추천을 받았으며 window.open을 사용해 보았지만 POST가 문제가있는 것 같습니다. 마지막 FORM의 창조했지만, 이제 문제는 내가

"415 unsupported media type" 

내 요청 헤더를 얻을 것입니다 지금이 내 콘텐츠 유형이 JSON으로 설정해야합니다 수정하는 것입니다 이해하고 그 무엇

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.5 
Connection keep-alive 
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 
Content-Length 112 
Content-Type application/x-www-form-urlencoded 

양식 POST에서는 가능하지 않습니까?

1) 파일을 다운로드하는 더 좋은 방법이 있습니까 (HTML 및 JS를 사용하는 단일 페이지 APP의 경우)? 아니 도서관 제발, 일반 자바 스크립트 웨이, 라이브러리에 대한 승인을 받고 내 프로젝트에 불가능합니다.

2) 위의 문제를 해결하려면 어떻게해야합니까? 다른 옵션은 무엇이 아닌가요?

코드 : 여기

var form = document.createElement("form"); 
    form.id = formId; 
    form.action = url; 
    form.method = method || "POST"; 
    form.target = target || "_self"; 
    if (data) { 
     for (var key in data) { 
      var input = document.createElement("textarea"); 
      input.name = key; 
      input.value = typeof data[key] === "object" ? JSON.stringify(data[key]) : data[key]; 
      form.appendChild(input); 
     } 
    } 
    form.style.display = 'none'; 
    $('#' + containerId).append(form); 
    if (!self.isEmptyObject(data)) { 
     form.submit(); 
    } 

답변

-1

내가 하나의 예를 확인했을 도움이 모든 사항 :

<form name="myform" id="myform" method="post" enctype= "multipart/form-data"> 
    <input name="uploadData" id="uploadData" type="file"/> 
</form> 

$("#uploadData").change(function (e) { 
    $('.loading').show(); 
     var file_data = $('#uploadData').prop('files')[0]; 
     var form_data = new FormData(); 
     var csvhtml = ''; 
     form_data.append('file', file_data); 
     $.ajax({ 
      url: '{{path('bulk_request_update_upload')}}', 
      dataType: 'text', 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data, 
      type: 'post', 
      success: function (data) { 
     } 
    }); 
}); 
+0

으로 변경했습니다.이 코드는 업로드 용입니다. –

0

수정은 REST 엔드 포인트에서 요구되었다

코드 아래에 포함
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_FORM_URLENCODED}) 

으로 변경하고 매개 변수를

public javax.ws.rs.core.Response getExceptionDetailLogs(final @FormParam("param1") String param1, 
    final @FormParam("param2") String param2) throws Exception { 
    .... 
} 
관련 문제