Ich habe einen einfachen Web-API-Controller, den ich durch die URL navigieren kann und es wird die .csv-Datei herunterladen. Jetzt versuche ich etwas jQuery zu schreiben, wo man, wenn man auf den Button klickt, es herunterladen wird, mir aber etwas fehlt.Web-API-Controller lädt csv, funktioniert aber nicht mit jQuery
public HttpStatusCode Get(string id)
{
var reportString = AskWebBusiness.Reports.GenerationQuestionReport(id);
var response = HttpContext.Current.Response;
response.ContentType = "text/csv";
response.AppendHeader("Content-Disposition", "attachment;filename=" + "Questions Report.csv");
response.Write(reportString);
return HttpStatusCode.OK;
}
Dieser Code funktioniert definitiv und ich kann auf die URL gehen, um den Download zu starten.
$('.js-btn-download-content').click(function (event) {
var currentLanguage = getCulture();
var url = baseUrl + 'report/get/' + currentLanguage;
event.preventDefault();
$('.loadingContent-download').fadeIn(200);
$.ajax({
headers: {
Accept : "text/csv; charset=utf-8",
"Content-Type": "text/csv; charset=utf-8"
},
url: url,
dataType: "text/csv",
success: function (data) {
$('.loadingContent-download').fadeOut(200);
// Not sure about code below
//var xmlDoc = $.parseXML(data);
//var $xml = $(xmlDoc);
//var $title = $xml.find("200");
//if ($title) {
//$('.contentDownloaded-download p').html('Content donwloaded!');
//$('.contentDownloaded-download').show();
//} else {
//$('.contentDownloaded-download p').html('Download failed! Please try again.');
//$('.contentDownloaded-download').show();
//
}
});
$('.js-btn-confirm').click(function() {
$('.contentDownloaded-download').fadeOut(200);
});
});
Wie Sie sehen können, hier einige javaScript, die ich habe in der App wieder ein OK zu handhaben ist. Der Browser lädt die Datei jedoch nicht, wenn dieses Skript ausgelöst wird. Irgendwelche Ideen?