iLa*_* ツ 0 javascript angularjs
我正在尝试从角度前端下载在Java后端中生成的xlsx文件,并且我正在使用Content-Disposition标头作为附件获取文件,并且可以使用以下js代码下载文件,但是当我尝试打开它时,它总是损坏的
var data = response; //from server
var blob = new Blob([data], { type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml;charset=UTF-8"});
var link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'filname.xlsx';
link.click();
Run Code Online (Sandbox Code Playgroud)
如果我通过控制台记录服务器响应,这就是我发现的内容
编辑:
有人可以帮我吗?
小智 5
我在AngularJS 1.6.1中遇到了同样的问题。当我从浏览器或从中调用HTTP GET服务时window.open("url"),xlsx文件已完美下载:304628字节。但是,response.dataAngularJS提供的提供的内容为289414字节,而Blob包装器的内容为550963字节,这是作为损坏文件下载的。如果我以zip格式返回xlsx,则会发生相同的行为。
我通过将XMLHttpRequest.responseType属性设置为这样来解决此问题:
$http.get(url, {responseType:'arraybuffer'});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |