Kenshin / simpread

简悦 ( SimpRead ) - 让你瞬间进入沉浸式阅读的扩展
http://ksria.com/simpread
GNU General Public License v3.0
8.12k stars 529 forks source link

图床插件的 PicList 图床方案在 CSDN 上传图片失败 #6740

Closed 0x0404 closed 1 month ago

0x0404 commented 1 month ago

描述这个错误

配置好 PicList 图床并且在少数派文章里上传图片成功后,在 CSDN 的文章里上传图片失败。

复现步骤

  1. 配置好 PicList 图床并且在少数派文章里上传图片成功。
  2. 在 CSDN 的文章里用 ff 快捷键上传图片失败。
  3. 在 CSDN 的文章里点击右下角悬浮插件里的 动作 -> 图床选项 -> 验证 PicList 图床 显示上传图片失败。
  4. 在 CSDN 的文章里点击右下角悬浮插件里的 动作 -> 仅将图片转换为 PicList 图床 显示上传图片失败。
  5. 在 CSDN 的文章里点击右下角悬浮插件里的 动作 -> 仅将图片转换为 PicGo 图床 显示上传图片成功。

执行上述步骤2、3、4时,同时在后台用 Wireshark 抓包,并未看到有请求发往 PicList 。

整个流程中,后台只使用了 PicList ,并未启动 PicGo 。由于 PicList 兼容 PicGo ,步骤5中实际是向 PicList 发送了图片并成功了。执行步骤5成功上传图片后,再执行步骤2、3、4时,图片均能上传成功(应该是由于步骤5后图片 URL 被改写成图床的链接,使得 CSDN 不再限制);刷新网页后,再执行步骤2、3、4时,图片上传失败。

其他相关说明

CSDN 应该是限制了调用表单上传功能,但是没有阻止通过 URL 上传图片。

建议图床插件的 PicList 图床方案默认使用表单上传功能,失败后再尝试使用 URL 上传图片。

操作系统

macOS

浏览器

Google Chrome Version 128.0.6613.138 (Official Build) (x86_64)

发生问题的网址

https://blog.csdn.net/ljianhui/article/details/43128465

Kenshin commented 1 month ago

嗨,这个问题是因为跨域造成的

image

CSDN 很鸡贼的将图片放在了 i-blog.csdnimg.cn 并且设置了跨域 blog.csdn.net

所以遇到这种情况的话,建议改用 PicGo 或 Cloudinary 图床即可。(我测试了这两种均可)

0x0404 commented 1 month ago

我还是去找个插件把跨域请求头干掉算了😂

Kenshin commented 1 month ago

你可以试试 Header Editor 这个插件能否符合你的要求 😂