设为首页收藏本站喵玉殿官方微博

 找回密码
 少女注册中
搜索
查看: 3809|回复: 3

[bug反馈] 有些帖子由于Referer的原因无法正确加载图片

[复制链接]
发表于 2020-5-18 10:16:07 | 显示全部楼层 |阅读模式
本帖最后由 岚依 于 2020-5-18 10:18 编辑

我不知道是不是我打开的姿势不对,但有些帖子就是无法加载外链的图片,怎么说呢。。。看上去好像这是其他(储存了图片的)网站的防盗链措施,但是它们加载不出来还是挺影响阅读体验的
比如说这样:
(帖子链接 https://bbs.nyasama.com/forum.php?mod=viewthread&tid=78092&page=6#pid813485

图片永远加载不出来

图片永远加载不出来

图片永远加载不出来,在控制台里可以发现加载失败了,原因大概是B站服务器通过Referer发现了这边在盗链(

可以看见加载失败了

可以看见加载失败了

原因大概是B站服务器通过Referer发现了图片是从喵玉加载的(

原因大概是B站服务器通过Referer发现了图片是从喵玉加载的(



帖子实际上应该是这样的:
nyc1.jpg
所以,是不是可以考虑监听图片标签加载失败的事件,在加载失败后换别的referer / cors再试一遍,或者直接把图片标签的referer-policy设为no-referer,假如实在不行的话,直接上iframe

PS: 我写了一个油猴脚本来暂时解决这个问题,也许能帮到有同样问题的人(
它应该能够监听所有“延迟加载”的图片,并在图片加载失败的时候自动重新尝试一遍
  1. // ==UserScript==
  2. // @name         Referer rescuer
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.1
  5. // @description  try to take over the world!
  6. // @author       lanyi
  7. // @match        https://bbs.nyasama.com/*
  8. // @grant        none
  9. // ==/UserScript==

  10. (function() {
  11.   'use strict';
  12.   document.body.querySelectorAll(`img[lazyloadthumb="1"]`).forEach(element => {
  13.     console.log(`adding error handler for ${element.id}`);
  14.     element.onerror = async () => {
  15.       console.log(`rescuing ${element.id}`);
  16.       const response = await fetch(element.getAttribute('src'), {
  17.           "headers": {
  18.           "accept": "*/*",
  19.           "sec-fetch-dest": "empty",
  20.           "sec-fetch-mode": "cors",
  21.           "sec-fetch-site": "cross-site"
  22.         },
  23.         "referrerPolicy": "no-referrer",
  24.         "mode": "cors",
  25.       });
  26.       element.setAttribute('src', URL.createObjectURL(await response.blob()));
  27.     };
  28.   })
  29. })();
复制代码


PSS:为什么手机版(触屏版)直接就连<img>标签都消失了啊喂!
nym.jpg



发表于 2020-5-19 02:01:37 | 显示全部楼层
……出现这个问题一般是因为发帖人用了不可以外链的图床 也就是说图片的存储网站不允许把图片发到别的地方比如这里来 重新尝试几遍也没用的(
……这不是喵玉想处理就可以处理的事情 而且喵玉也不该管这事 只能提醒发帖的人把图片换个允许外链的图床或者转存到喵玉再放(

点评

可是,如果是這邊的圖庫有問題,那也要儘快修吧,我發兩篇都不行,快氣炸了!!!  发表于 2020-6-6 14:07
回复

使用道具 举报

 楼主| 发表于 2020-5-19 09:09:06 | 显示全部楼层
ooxoo 发表于 2020-5-19 02:01
……出现这个问题一般是因为发帖人用了不可以外链的图床 也就是说图片的存储网站不允许把图片发到别的地方 ...

嗯。。确实有道理orz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|无图版|手机版|小黑屋|喵玉殿

GMT+8, 2025-10-31 03:48

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表