vue get请求下载
时间: 2023-10-29 12:55:34 浏览: 34
在 Vue 中发起 GET 请求并下载文件,可以使用 `axios` 库。
首先安装 `axios`:
```
npm install axios --save
```
然后在需要下载文件的组件中,引入 `axios`:
```javascript
import axios from 'axios'
```
接着,在需要下载文件的方法中,使用 `axios` 发起 GET 请求,并将响应中的文件内容转换为 Blob 对象,并创建 URL 对象,然后使用 a 标签的 download 属性进行下载:
```javascript
downloadFile() {
axios({
url: 'http://example.com/file.pdf',
method: 'GET',
responseType: 'blob' // 重要:告诉服务器返回的数据类型为 Blob 对象
}).then(response => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.pdf');
document.body.appendChild(link);
link.click();
});
}
```
这里的 `url` 是需要下载的文件的链接,`responseType` 设置为 `blob` 表示响应中的数据类型为 Blob 对象。
最后,调用 `downloadFile` 方法即可触发下载。