本文介绍: 下面是blob对象下载的逻辑,使用createObjectURL转换为url,然后绑到a链接上,通过点击a链接的方式触发下载。后端如果设置了Content-Disposition ,那么不需要download属性也能下载。其实window.open和a标签是一样的,只是a标签是要用户点击触发,而window.open可以主动触发。的情况就是报错的情形。以后,返回值会被转为blob,这时我们log可以看到type,是。我最初使用的方法就是这个,只要提供了文件的服务器地址,使用。,如果没有设置的情况下,
1.window.open
我最初使用的方法就是这个,只要提供了文件的服务器地址,使用window.open
也就是在新窗口打开,这时浏览器会自动执行下载。
2.a标签
其实window.open和a标签是一样的,只是a标签是要用户点击触发,而window.open可以主动触发
后端如果设置了Content-Disposition ,那么不需要download属性也能下载。而且后端还可以设置文件名。
3.xhr(axios)下载
这个时候,请求发送的时候需要注明responseType = "blob"
,如果没有设置的情况下,new Blob
的时候需要传入第二个参数。比如new Blob([res], { type: xhr.getResponseHeader("Content-Type") });
只是这时后端就没法通过body报错了。只能通过状态码和响应头来传递信息了。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。