最近工作中用到了文件的下载功能,文件的下载不能简单用ajax请求,文件下载还会涉及到http跨域问题,于是搜集了各种方法,一步步踩坑,终于有点眉目了。
方法一:a标签下载
利用a标签的href属性,但是遇到的问题是,我这边拿到的url是跨域的,在给文件设置名称的时候,a标签的download属性无效。找了很多资料也没能解决,想哭。
代码如下:
if (!url) {
return
}
let link = document.createElement('a')
link.setAttribute('download', this.cOrderNo + '.zip')
link.style.display = 'none'
link.href = url
document.body.appendChild(link)
link.click()
方法二:form进行文件下载
这里是灵活用到了form的action,method,将请求嵌入到form的属性中,可以利用form中的input框进行传参,如果遇到accessToken的问题,可以在form的header中设置
代码如下:
let accessToken = getToken()
let form = document.createElement('form')
let headerParam = {}
headerParam.Authorization = accessToken
form.s