2016-08-11 3 views
0

Ich muss eine CSV-Datei für meine jeweilige Tabelle auf einer Seite herunterladen. Ich muss nach dem Download nichts tun, nur dass er Export sagt und die Daten in die CSV-Datei heruntergeladen werden. Der Back-End-Code ist bereit, aber wie mache ich es mit POST.Datei mit POST FORM/AJAX herunterladen?

Ich habe viele Vorschläge verwiesen und versucht, window.open zu verwenden, aber POST scheint dort ein Problem zu sein. versuchte schließlich mit FORM Schöpfung, aber jetzt ist die Frage ich

bekommen
"415 unsupported media type" 

Meine Anfrage Header

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 

Nun, was ich verstehe, sollte dies mein Gehalt zu beheben ist Typ JSON gesetzt werden, und das ist nicht möglich in FORM POST?

1) Haben wir einen besseren Weg, um eine Datei herunterzuladen (für eine einzelne Seite APP mit HTML und JS)? KEINE Bibliothek bitte, Javascript ist einfach, die Genehmigung für die Bibliothek ist in meinem Projekt nicht möglich.

2) Wie kann ich das obige Problem beheben, wenn nicht, was sind meine anderen Optionen?

Code:

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

Antwort

-1

Hier habe ich ein Beispiel getan sicher, hilfreich für alle:

<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

Dieser Code ist für das Hochladen. –

0

Das Update von REST Endpunkt erforderlich war

unten Code enthalten

@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_FORM_URLENCODED}) 

und änderte die Parameter zu

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