下载从spring MVC控制器(Ajax调用)返回的excel文件

我正在开发一个弹簧引导,springmvc的Web应用程序。

我有一个控制器方法,返回一个excel文件如下:

in = new FileInputStream(comparsionreport); out = response.getOutputStream(); response.setHeader("Content-disposition", "attachment; filename=" + comparsionreport.getName()); response.setContentType("application/vnd.ms-excel"); response.addHeader("filename", comparsionreport.getName()); byte[] buffer = new byte[BUFFER_SIZE]; // use bigger if you want int length = 0; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } in.close(); out.close(); 

在视图(jaavscript)中,AJAX调用完成如下:

 $.ajax({ url : $('#compareFrm').attr('action'), type : 'post', responseType: "arraybuffer", data : $('#compareFrm').serialize(), success : function(data, status, xhr) { // download response file var jsonData = JSON.stringify(data); var blob = new Blob( [ jsonData ], { type: "application/vnd.ms-excel" }); saveAs(blob, xhr.getResponseHeader('filename')); }, error : function(data) { } }); 

一个好名字的excel文件被下载,但打开它时,它说该文件不能打开,因为一个错误的扩展名或格式(损坏的文件,所以…)

有没有人有一个想法? 这对我来说是一个阻塞问题:(

谢谢