请教一个下载会跳转链接的问题
请教一下,拿到了一个链接,,302跳转后才是可以下载的文件,如何在js中实现点击下载这个链接跳转后的文件。 常规写法无效,如下:
var filename = "a.mp4";
let link = document.createElement('a')
document.body.appendChild(link)
link.style.display = 'none'
link.href = http://aaa/bbb
link.download = filename
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(blobUrl);
因为href 带的是会302的链接,索引上述实现只会在当前页面打开mp4文件。
如何能实现直接打开另存为的窗口,下载跳转后的文件呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没办法,你代码看上去是没毛病的。那么问题就出在跨域上了,那么解决办法有什么呢?
不跨域,不就是下载了嘛
通过服务端设置下载头
Content-disposition: attachment
把
content-type
改成默认流object-stream
可以使用这个库下载解决跨域问题
https://github.com/eligrey/Fi...
它实现原理是利用这个特性Blob
如果你想下载成百上千个文件,那我推荐你使用这个库https://github.com/jimmywarti...
结合
https://github.com/keithwhor/...
多线程库
可以实时下载后实时打包zip 而且利用了serve worker 浏览器不会卡顿