注意:如果在项目中引用mokejs,会影响原生ajax的responseType,导致配置blob方式无法生效,无法进行文档流下载
window.open('/api/delivery/channel/export?' + paramsString)
download(1,'/api/delivery/channel/export?' + paramsString, 'kkk' )
this.asyExportchannelexcel().then((res) => {
let blob = new Blob([res.data], {
type: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob);
} else {
let url = window.URL.createObjectURL(blob)
let elink = document.createElement('a');
elink.download = "文件名称.xls";
elink.style.display = 'none';
elink.href = url
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
}
})
let xhr = new XMLHttpRequest()
let fileName = 'file.xls'
xhr.open('GET', '/api/delivery/channel/export?' + paramsString, true)
xhr.responseType = 'arraybuffer'
console.log(xhr)
xhr.onload = function() {
if (this.status === 201) {
let type = xhr.getResponseHeader('Content-Type')
console.log(type)
let blob = new Blob([this.response], {type: type})
if (typeof window.navigator.msSaveBlob !== 'undefined') {
window.navigator.msSaveBlob(blob, fileName)
} else {
let URL = window.URL || window.webkitURL
let objectUrl = URL.createObjectURL(blob)
if (fileName) {
var a = document.createElement('a')
if (typeof a.download === 'undefined') {
window.location = objectUrl
} else {
a.href = objectUrl
a.download = fileName
document.body.appendChild(a)
a.click()
a.remove()
}
} else {
window.location = objectUrl
}
}
}
}
xhr.send()
let info = {
downloadinfo: 'params'
}
axios({
method: 'GET',
url: '/api/delivery/channel/export',
header: {
contentType: "application/x-www-form-urlencoded; charset=utf-8"
},
params: info,
responseType: 'blob'
}).then(res=>{
console.log(res)
let blob = new Blob([res.data], {type: "application/vnd.ms-excel;charset=utf-8"});
console.log(blob)
let fileName = '文件名称.xls'
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, fileName);
} else {
let link = document.createElement('a');
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.download = fileName;
link.click();
URL.revokeObjectURL(link.href);
}
}).catch(err=>{
console.log(err)
})
}