vue项目,axios去请求接口
request文件中代码:
import request from "封装好的axios请求文件"
//下载用户手册PDF时请求的接口
export const getGuide = (param) => {
return request({
url:"请求url",
method:"get",
params:param,
//一定要加responseType
responseType: "blob"
})
}
页面中点击下载按钮时,去请求文件流,然后执行下载操作
代码如下:
downloadGuide(){
getGuide().then(res => {
let blob = new Blob([res], {type: 'application/pdf'});
let downloadElement = document.createElement("a");
let href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = `用户手册-${this.name}` //下载后的文件名,根据需求定义
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
})
}