我需要从数据库导出表格以生成Excel文件,以便用户可以下载。我目前正在使用带有隐藏iframe的普通表单提交,并且端点生成包含Content-Disposition的响应。
但是,如果服务器无法生成excel文件,或者发生任何服务器端错误/异常,我需要向用户显示一条消息。
我切换到使用Jquery表单插件。虽然它确实给了我响应体,但它不会触发Save。
还有其他替代品吗?
在尝试了jQuery之后,Ajax和很多...终于得到了一个合适的解决方案。
jQuery ajax无法正确处理二进制响应(无法设置responseType),因此最好使用普通的XMLHttpRequest调用
使用jQuery.fileDownload.js
$.fileDownload(url,{
httpMethod: 'get',
data:$("#"+formId).serialize(),
prepareCallback:function(url){
},
successCallback:function(url){
},
failCallback: function (html, url) {
}
});
和服务器端添加response.setHeader(“Set-Cookie”,“fileDownload = true; path = /”);