Chrome扩展的 chrome.downloads.download API 可否修改referer
由于某个网站的文件有referer防盗链设置,所以我想在下载时修改referer信息。
普通的下载代码:
chrome.downloads.download({
url: url,
filename: fileName,
conflictAction: 'uniquify',
saveAs: false
});
我尝试了chrome.webRequest.onBeforeSendHeaders.addListener() 来修改web请求的referer,但是这个方法似乎不会对 chrome.downloads.download 生效。
而 chrome.downloads.download 自身似乎又不允许修改referer。那么还有没有办法达到我的目的呢?
(因为我是新手,所以用了很多“似乎”,请见谅)
ps:我找到了stackoverflow上的一个讨论:
send referrer header with chrome.downloads api
答主说是在新标签页打开图像然后将图像加载到canvas里。
其实我感觉stackoverflow上的这个办法有情景限制,因为图片是存在referer限制的,而那个题主的问题是在图片上点击下载,此时图片已经在网页上加载了,所以可以在新标签页打开。但我的使用情景里不会把所有图片都在网页上加载,而是根据url直接下载,所以我应该也不能在新标签页里打开图片,也就没办法继续操作了。
如果非要这么做,那么我先把图片在源网页里加载一遍,然后再顺着这个答主的思路进行操作,也许会有一定的可能性顺利执行。只是这样更加繁琐了,我做这个扩展的意义也就不存在了 TAT
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
隔了快10个月,我又开始研究这个问题,发现 chrome 是可以修改 referer的,不过不是在 download 里面设置。
类似这样:
此外,需要在清单文件里加入权限:
详见:
https://saber.love/?p=4410