可能大家都觉得没有必要用ajax来下载东西,用window.open(url)就可以搞定
但是这有一个问题,就是这就限定了只能用GET方式来请求了;
可能你又会说GET很符合REST的要求呀。
但是如果你用jwt来做身份验证呢?
这意味着你需要在Window.open时带上自定义的Request Header,这就无解了
所以今天来介绍一下怎么用ajax来下载文件
1 let xhr = new XMLHttpRequest() 2 xhr.open(‘GET‘,‘http://www.xxx.com/bbb.zip‘,true) 3 // 这部至关重要,命令xhr返回给你的时blob(二进制大对象)类型的数据 4 xhr.responseType = ‘blob‘ 5 xhr.send() 6 xhr.onreadystatechange = function () { 7 if (xhr.readyState === 4 && xhr.status === 200) { 8 const aTag = document.createElement(‘a‘) 9 aTag.href = URL.createObjectURL(this.response) 10 aTag.download = ‘aaa.zip‘ 11 aTag.click() 12 } 13 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。