【问题标题】:Imgur images returning 403Imgur 图像返回 403
【发布时间】:2017-10-09 06:34:57
【问题描述】:

我一直在制作一个反应应用程序,最近每当我尝试从 imgur 访问图像时,就像这样

this.setState({
  imgUrl: `https://i.imgur.com/${this.props.image.id}b.png`,
  imgBigUrl: `https://i.imgur.com/${this.props.image.id}l.png`
});

它被渲染成这样

<img src={this.state.imgUrl}/>

但我不断收到 403 禁止,但是当我使用邮递员或在浏览器中访问它时,它很好。我还通过传入专辑网址来访问 API,例如

https://imgur.com/gallery/zrUFj

并从那里获取所有图像以显示在应用程序中(我得到 403 错误)

我不确定我可能在哪里做错了,我也尝试为 API 授权获取新的客户端 ID,但仍然没有成功。有人有什么建议吗?

【问题讨论】:

    标签: javascript reactjs imgur


    【解决方案1】:

    Imgur 的 CDN 似乎限制了对来自 127.0.0.1 引用的图像的访问。这已作为问题报告给他们(服务器配置问题)。

    同时尝试将您的开发服务器主机从 127.0.0.1 更改为 localhost 或者您的真实 IP 地址。

    【讨论】:

    • 这对我有用。谢谢!如果你不介意我问,你在哪里找到的?我已经搜索了一段时间,但我还没有偶然发现该信息
    • 很高兴听到这个消息。我最近遇到了同样的问题。只需调查两种情况下的响应标头并尝试该方法。请注意,您将在生产构建应用程序时遇到相同的问题。只需将其发送到您的 IP 地址而不是 localhost
    • Imgur 刚刚写信给我说他们最终解决了这个问题。您可以再次使用localhost
    • 对我来说问题恰恰相反,127.0.0.1 不起作用,而 localhost 起作用
    • 我刚刚更新了答案以反映现在的实际情况,即127.0.0.1不起作用而localhost起作用。
    【解决方案2】:

    请注意,解决此问题的一种快速而简单的方法是通过 &lt;meta&gt; 标签简单地删除引荐来源标头:

    <!DOCTYPE html>
    <html>
    <head>
      <meta name="referrer" content="no-referrer">
    </head>
    <body>
      ...
    </body>
    </html>
    

    或在您的fetch

    await fetch("https://i.imgur.com/iie9XhM.jpg", {referrer:""})
    

    或(如@Theblockbuster1 所述)在img 标签中:

    <img src="https://i.imgur.com/iie9XhM.jpg" referrerpolicy="no-referrer">
    

    【讨论】:

    • 谢谢!另外,&lt;img src="" referrerpolicy="no-referrer"&gt; 为我工作:)
    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多