vue3 axios 怎么接收后端的ResponseEntity<byte[]>
时间: 2024-02-23 17:03:09 浏览: 247
在Vue3中使用axios接收后端返回的ResponseEntity<byte[]>数据,需要进行以下步骤:
1.在axios的请求中设置responseType为“arraybuffer”。
2.在axios的请求中设置headers的“Accept”为“application/octet-stream”,表示接收二进制数据。
3.在axios的响应拦截器中将二进制数据转换为Blob对象。
4.使用FileSaver.js库将Blob对象转换为文件并下载。
下面是一个示例代码:
```
import axios from 'axios'
import FileSaver from 'file-saver'
axios({
url: '/download',
method: 'get',
responseType: 'arraybuffer',
headers: {
'Accept': 'application/octet-stream'
}
}).then(response => {
const blob = new Blob([response.data], {type: 'application/octet-stream'})
FileSaver.saveAs(blob, 'file.xlsx')
}).catch(error => {
console.log(error)
})
```
在这个示例代码中,我们使用axios向后端发送一个get请求,请求的url为“/download”。在请求中,我们设置responseType为“arraybuffer”表示接收二进制数据,设置headers的“Accept”为“application/octet-stream”表示接收任何类型的二进制数据。在响应拦截器中,我们将二进制数据转换为Blob对象,最后使用FileSaver.js库将Blob对象转换为文件并下载。
阅读全文