Imgur 图像返回 403

Jus*_*ado 10 javascript imgur reactjs

我一直在制作一个反应应用程序,最近每当我尝试从 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`
});
Run Code Online (Sandbox Code Playgroud)

它被渲染成这样

<img src={this.state.imgUrl}/>
Run Code Online (Sandbox Code Playgroud)

但是我一直被 403 禁止,但是当我使用邮递员或在浏览器中访问它时,它很好。我还通过传入像这样的专辑网址来访问 API

https://imgur.com/gallery/zrUFj

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

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

joe*_*joe 14

请注意,解决此问题的一种快速而简单的方法是通过标签简单地删除引用标头<meta>

<!DOCTYPE html>
<html>
<head>
  <meta name="referrer" content="no-referrer">
</head>
<body>
  ...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

或者在你的fetch

<!DOCTYPE html>
<html>
<head>
  <meta name="referrer" content="no-referrer">
</head>
<body>
  ...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

await fetch("https://i.imgur.com/iie9XhM.jpg", {referrer:""})
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!另外,`&lt;img src=""referrerpolicy="no-referrer"&gt;`对我有用:) (4认同)

小智 12

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

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

  • 对我来说,问题恰恰相反,“127.0.0.1”不起作用,而“localhost”起作用 (9认同)