javascript - 为从标签发出的请求设置自定义引荐来源网址
问题描述
有时网站不会让您在没有有效推荐人的情况下加载图像。以此为例,它返回一个禁止的错误。在一个类似的问题中,我找到了这个答案,建议做这样的事情:
<img src onerror="fetch('https://i.pximg.net/img-original/img/2020/11/28/06/04/23/85949640_p0.png', {headers: {Referer: 'https://www.pixiv.net/en/'}}).then(r=>r.blob()).then(d=> this.src=window.URL.createObjectURL(d));" />
但是,这仍然无法加载图像。检查一些承诺通过安装脚本来修复此错误的扩展程序的代码表明它们只是在更改引用,并且这应该可以使事情正常进行。
解决方案
有时网站不会让您在没有适当的引荐来源的情况下加载图像。
是的。许多网站不想付费存储图像并通过网络传输它们,以便免费加载者可以在他们的网站上显示它们而无需承担费用。
在一个类似的问题中,我找到了这个答案,这表明做这样的事情
失败有两个原因。
- 这是一个禁止的标题。浏览器旨在防止您的 JavaScript 谎报请求被触发的位置。
- 大多数托管图片的网站都不会通过 CORS 向第三方授予使用 JS 读取图片的权限。如果他们进行引用检查以停止免费加载,他们就更不可能了!
如果网站不希望您显示他们托管的图像,您需要尊重这一点。
而是为您自己的图像托管付费。
不要将图像从第三方复制到您自己的网站,除非您确定它们不受版权保护(或您获得许可)。
推荐阅读
- amazon-web-services - 在 Elastic Beanstalk 环境中为多容器配置设置 Dockerrun.aws.json
- servicestack - “dotnet tool update -g app”更新到不支持工作室的 0.0.76
- reactjs - 在 1 次分派时,在无限循环中分派将 redux 与 connect mapStateToProps 反应
- css - CSS中的文本下划线动画 - 最简单的方法?
- node.js - 无法将 JSON 文件中的多个对象插入我的 MongoDB,它只插入第一个
- sql-server - 使用与服务器“tcp:xx.xxx.xxx.xx”上的数据库“myDb”的连接时发生错误。SQL Server - 谷歌云
- python - 如何删除 tsv 行
- javascript - 如何计算用户在Javascript中输入的数字的阶乘,使用,do-loop,while-loop?
- swift - 按钮上有丑陋的阴影,混合模式不起作用
- html - 如何必须根据内容调整大小的部分和使用剩余空间的部分