Javascript 动态生成和下载excel,并在文件准备下载时向用户显示加载程序

Javascript 动态生成和下载excel,并在文件准备下载时向用户显示加载程序,javascript,java,apache-poi,Javascript,Java,Apache Poi,我正在尝试使用服务器端的poi创建excel,并将其发送到浏览器。 使用href或表单提交解决方案工作正常,但棘手的部分是文件创建占用了太多时间,所以我想向用户显示一些消息,如“处理文件”,所以我使用简单的get请求实现了这一点,并在请求之前添加了加载程序,并在成功回调中删除了加载程序 问题是,该文件不是下载文件,而是作为响应文本出现在客户端,并且总是执行失败回调。 请建议我如何在成功回调中获得下载文件,而不是响应文本中的字节数据。 还尝试将内容类型设置为附件、强制下载等,但对我来说不起作用浏览

我正在尝试使用服务器端的poi创建excel,并将其发送到浏览器。 使用href或表单提交解决方案工作正常,但棘手的部分是文件创建占用了太多时间,所以我想向用户显示一些消息,如“处理文件”,所以我使用简单的get请求实现了这一点,并在请求之前添加了加载程序,并在成功回调中删除了加载程序

问题是,该文件不是下载文件,而是作为响应文本出现在客户端,并且总是执行失败回调。 请建议我如何在成功回调中获得下载文件,而不是响应文本中的字节数据。 还尝试将内容类型设置为附件、强制下载等,但对我来说不起作用浏览器不下载文件它在响应文本中显示字节数据 尝试使用下载url打开新窗口,但如上所述,文件创建需要时间,所以浏览器在几分钟后不会显示任何内容错误

注意hwb是下面代码中的工作簿对象

file = new File(FileName+"_"+timeStamp+".xlsx");
FileOutputStream fos = new FileOutputStream(file);
hwb.write(fos);
fos.close();
file.deleteOnExit();

String contentType = "application/vnd.openxmlformats-   officedocument.spreadsheetml.sheet";
ResponseBuilder response = Response.ok((Object) file, contentType);
response.header("Content-Disposition", "attachment; filename="+ file.getName());
return response.build();   

您使用Ajax请求吗?@Saurabh是的,我使用的是GET类型的Ajax请求