前端:jQuery
后端:Spring
原来:使用$("form").submit()进行文件的下载,但是该方法不能获取callback函数,不能对下载过程进行监听,所以采用jQuery.fileDownload.js可以在下载完成时获取一个回调函数。
前端:
var url = "/foodSource/pefg/export"; $.fileDownload(url,{ httpMethod: 'POST', data:$("#exportForm").serialize(), prepareCallback:function(url){ // common.layer.msg("下载开始,请稍等!"); common.layer.loading(); }, successCallback:function(url){ layer.closeAll(); common.layer.success('下载成功!', function () { }); }, failCallback: function (html, url) { var json = JSON.parse(html); console.log(json); if(json.status == 512){ common.layer.fail(json.errorMessage); } } });
后端:
在java代码中
需要进行如下操作:
response.setHeader("Set-Cookie", "fileDownload=true; path=/");
jQuery以此判断下载是否成功。如果不添加上面的语句,则successCallback回调函数失效