使用ajax下载文件
- 定义响应类型为 blob
- 拿到响应体后,将其转换为blob对象,通过URL.createObjectURL来创建一个url
- 通过a标签的download属性来实现文件下载
downloadFile(row) {
var uploadPostData = {
id: row.id
}
$.ajax({
type: "POST",
//定义响应类型为 blob
xhrFields: {
responseType: 'blob'
},
async: true,
contentType: "application/json",
data: JSON.stringify(uploadPostData),
url: "http://www.aaa.com/posts/",
success: function(result) {
//转换为blob对象,通过a标签来实现文件下载
const blob = new Blob([result], { type: 'application/octet-stream' })
const a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download = '文件名字.pdf'
a.click()
},
error: function(xhr,status,error) {
console.log('请求失败',error);
}
});
},