【问题标题】:Instagram web api get: :ERR_BLOCKED_BY_RESPONSE图像 src 一段时间后不显示,但链接在浏览器中有效
【发布时间】:2021-05-05 12:26:25
【问题描述】:

我有一个应用程序,可以在其中显示 Instagram 帖子及其属性(例如/评论计数、帖子缩略图等)。我使用带有 python 的私有 API 来获取这些属性。

我使用<img> 标签和 src 属性来显示帖子缩略图,通过提供来自 API 响应的示例 URL:

https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/sh0.08/e35/p640x640/178658519_464414754779708_8788669411129849985_n.jpg?tp=1&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=108&_nc_ohc=rB2avtcYIpAAX_iuOn2&edm=ABmJApABAAAA&ccb=7-4&oh=efc659fa98302f5da1b68c0552e43278&oe=60B65A2D&_nc_sid=6136e7&ig_cache_key=MjU2MTE4MzMwMzE4NjgxODMxOA%3D%3D.2-ccb7-4

这些帖子缩略图在我的应用程序上应该是可见的,但过了一段时间突然它们就不再可见了。我认为 URL 签名已过期,但这不是原因,当我点击上面给出的链接时,我可以成功看到帖子的缩略图。

我还在控制台中看到:“加载资源失败:net::ERR_BLOCKED_BY_RESPONSE”

为了简化:

如果它是相对的,我的应用程序在 django 上。我错过了什么,我认为应该是简单的东西?

【问题讨论】:

  • 很遗憾,没有,如果我使用 iframe 而不是 img,我可以看到图像但无法更改样式。我不明白的是,为什么我可以将图像显示为 iframe 而不能显示为 img?

标签: html image iframe instagram src


【解决方案1】:

iframed 图像可能会向 Instagram CDN 发送正确的 referer 标头。

如果 Instagram 不喜欢您的浏览器在加载图片时发送到 cdninstagram 域的“推荐人”,Instagram 现在会设置 cross-origin-resource-policy: same-origin

缓解这种情况的一种方法可能是创建一个可以在您的域上运行的简单图像代理,将图像从 instagram 服务器下载到您的服务器,然后将其输出到浏览器。

此处提供了实施示例:https://stackoverflow.com/a/67293454/15404876

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-13
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多