//拼接字符串
window.location.href = `${window.cip}/logger/login/?params=${JSON.stringify(params)}`
window.open(`${window.cip}/logger/login/?params=${JSON.stringify(params)}`)
//文件流下载
axios({
method: 'post',
url: url, // 请求地址
data: options, // 参数
responseType: 'blob' // 表明返回服务器返回的数据类型
}).then(
response => {
resolve(response.data)
let blob = new Blob([response.data], {
type: 'application/vnd.ms-excel'
})
console.log(blob)
let fileName = Date.parse(new Date()) + '.xlsx'
if (window.navigator.msSaveOrOpenBlob) {
// console.log(2)
navigator.msSaveBlob(blob, fileName)
} else {
// console.log(3)
var link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = fileName
link.click()
//释放内存
window.URL.revokeObjectURL(link.href)
}
},
err => {
reject(err)
}
如果后端提供的下载接口是get类型,可以直接使用方法一和二,简单又便捷;当然如果想使用方法三也是可以的,但是有点墨迹。
如果后端提供的下载接口是post类型,必须用方法三。