I am using jquery file download ..
the code is as follows :
function downloadFile(){
var downloadOptions = {
preparingMessageHtml: \"We are preparing y
In order to make JQuery knows the file download just ocurred, your response header must contains Set-Cookie: fileDownload=true; path=/
.
In Java:
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
Here is source code of jquery file download ..
$(function () {
$(document).on("click", "a.fileDownloadCustomRichExperience", function () {
var $preparingFileModal = $("#preparing-file-modal");
$preparingFileModal.dialog({ modal: true });
$.fileDownload($(this).attr('href'), {
successCallback: function (url) {
$preparingFileModal.dialog('close');
},
failCallback: function (responseHtml, url) {
$preparingFileModal.dialog('close');
$("#error-modal").dialog({ modal: true });
}
});
return false; //this is critical to stop the click event which will trigger a normal file download!
});
});
<div id="preparing-file-modal" title="Preparing report..." style="display: none;">
We are preparing your report, please wait...
<div class="ui-progressbar-value ui-corner-left ui-corner-right" style="width: 100%; height:22px; margin-top: 20px;"></div>
</div>
<div id="error-modal" title="Error" style="display: none;">
There was a problem generating your report, please try again.
</div>
Some browsers also need you to reset response or your download will not work!
response.reset();
On sucess;
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
On error
response.setHeader("Set-Cookie", "fileDownload=false; path=/");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
Use "Cache-Control" only if will exists anothers requests.
please try like this
function exportToExcelTest() {
var region = $('#ddlRegion').val();
var hrinfo = $('#hrinfodropdown').val();
if (region != null) {
$('#ExportOptions').modal('hide');
$.blockUI({ message: '<h1>Please wait generating excel data...</h1>' });
//$.blockUI({ message: '<h1><img src="../Images/ajax_loader_blue_350.gif" /> Just a moment...</h1>' });
$.blockUI({ css: { backgroundColor: '#f00', color: '#fff'} });
var myData = region + ':' + hrinfo;
$.fileDownload('Excel.ashx', {
httpMethod: "POST",
data: { data: myData },
successCallback: function (url) {
//$("div#loading").hide();
//alert('ok');
//response.setHeader("Set-Cookie", "fileDownload=false; path=/");
$.unblockUI();
},
prepareCallback: function (url) {
//alert('ok');
//response.setHeader("Set-Cookie", "fileDownload=true; path=/");
$.unblockUI();
},
failCallback: function (responseHtml, url) {
//alert('ok');
// $("div#loading").hide();
// alert('Error while generating excel file');
//response.setHeader("Set-Cookie", "fileDownload=false; path=/");
$.unblockUI();
}
});
}
else {
alert('Please select a region....');
return false;
}
}
Referance from : https://www.experts-exchange.com/questions/28713105/Jquery-fileDownload-successcallback-not-working.html
I hope it's Work for you..