Fetch API提供了一个 JavaScript 接口,用于访问和操纵HTTP管道的一些具体部分,例如请求和响应。它还提供了一个全局fetch()方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。

利用浏览器支持fetch下的blob文件类型实现下载,可以很好地避免浏览器点击a标签,跳转到新页面预览的行为。

downloadFile() {
	if (window.fetch) {
		fetch(this.fileUrl)
			.then(res => res.blob())
			.then(blob => {
				let a = document.createElement('a')
				let url = window.URL.createObjectURL(blob)
				a.href = url
				a.download = this.fileName
				a.click()
			})
	} else {
		let a = document.createElement('a')
		a.href = this.fileUrl
		a.target = '_blank'
		a.download = this.filename
		a.click()
	}
}
``