Tag: content type

从ajax服务器响应获取excel文件(.xlsx)

我得到了一个问题,得到Excel文件,并在浏览器中获得该文件的响应(成功ajax方法)后打开下载窗口。 我有适当的Content-Type and Content-Disposition headers ,我尝试在js中使用Blob ,并且无法达到我想要的 – 简单的文件下载。 我完成了我的ajax的几个版本,其中之一是在下面。 我开发了AJAX,它返回的Excel文件,我无法正常打开,因为它已损坏(尽pipe.xlsx扩展名)。 也许问题是在Blob构造函数中使用不适当的数据types? 我尝试使用“xhr.response”,而不是从成功的方法参数“数据”,但它不起作用。 我在Chrome浏览器中查看了开发者工具中的响应头,并且设置正确。 重要的是 – 所有在服务器端创build的excel工作簿都是正确的,因为它在以前版本中的数据在URL中发送,而不是在ajax post中。 Java / Spring服务器端的Controller方法如下: response.reset(); response.setContentType("application/vnd.ms-excel"); response.addHeader("Content-Disposition","attachment;filename=\"" + className + " " + title + ".xlsx\""); try (ServletOutputStream output = response.getOutputStream()){ workbook.write(output); output.flush(); } catch (Exception e) { throw new RuntimeException(e); } 我的Ajax下载文件并打开下载窗口: $.ajax({ url: myUrl, type: 'POST', […]

如何正确地下载与Angular2的Excel文件

这是我的服务的代码,它使请求的响应一个xls文件: exportInternalOrder(body) { let user_token: string = this.sessionService.getToken(); let headers = new Headers(); headers.append('responseType', 'arraybuffer'); headers.append('Authorization', 'Bearer ' + user_token); return this.http.post(this.config.exportInternalOrder, body,{ headers: headers }).map(res => new Blob([res._body],{ type: 'application/vnd.ms-excel' })); } 哪个应该处理excel文件的响应。 这是调用它的代码: let objToSend = this.makeObjToSend(false); this.reportingService.exportExcel(objToSend) .subscribe( data => { this.exportData(data); }, error => { this.errorFilterMsg.push({ severity: 'error', detail: 'Report exporting […]