后端返回文档流,前端下载后乱码
时间: 2023-08-04 20:26:51 浏览: 88
解决vue下载后台传过来的乱码流的问题
3星 · 编辑精心推荐
前端下载后文档乱码可能是因为前端没有正确处理文档流导致的。可以尝试以下解决方法:
1. 设置 HTTP 头部 Content-Type。在后端返回文档流时,可以设置 HTTP 头部 Content-Type 来指定文档类型,例如:Content-Type: application/pdf。
2. 使用 Blob 对象下载文档。在前端下载文档时,可以使用 Blob 对象将文档流转换为二进制数据,然后使用 URL.createObjectURL() 方法生成下载链接。示例代码如下:
```
let blob = new Blob([response.data], {type: 'application/pdf'});
let link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'document.pdf';
link.click();
```
3. 使用 FileReader 对象下载文档。在前端下载文档时,可以使用 FileReader 对象将文档流转换为二进制数据,然后使用 a 标签的 download 属性直接下载。示例代码如下:
```
let reader = new FileReader();
reader.readAsDataURL(response.data);
reader.onload = () => {
let link = document.createElement('a');
link.href = reader.result;
link.download = 'document.pdf';
link.click();
};
```
以上是两种常见的处理文档流下载乱码问题的方法,可以根据实际情况选择合适的方法。
阅读全文