我们比较常用的方式:
1.
<a href="http://www.baidu.com" download="baidu.html">下载</a>
window.open('http://www.baidu.com', '_blank')
window.open('http://www.baidu.com', '_blank', 'download=baidu.html')
_blank
是指定打开的方式 没有的话 就默认当前页面打开
优点:不存在跨域问题
缺点:这种方式不能下载.html
、.htm
、.xml
、.xhtml
等文件,因为这些文件会被当成html
文件来处理,所以会直接在当前页面打开
2.ajax
下载,包括axios
、fetch
等都是相同的
const xhr = new XMLHttpRequest()
xhr.open('GET', 'http://www.baidu.com')
xhr.send()
xhr.onload = function () {
const blob = new Blob([xhr.response], { type: 'text/html' }) //转换一下数据
const a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download = 'baidu.html'w
a.click()