此段代码是我在Vue中运用的,请求可换成自己的ajax ,只需修改下载文件的name和下载url 可忽略loading
// 下载方法
downloadHandle () {
//加载 可忽略
var loading = this.$loading({
lock: true,
text: '正在下载中',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
})
//下载文件的name
var operationName = '模板.xlsx'
this.$http({
url: '下载url',
method: 'get',
responseType: 'blob',
params: {}
}).then(({ data }) => {
const content = data
const blob = new Blob([content])
const fileName = operationName
if ('download' in document.createElement('a')) {
// 非IE下载
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else {
// IE10+下载
navigator.msSaveBlob(blob, fileName)
}
//关闭加载 可忽略
loading.close()
})
}