【问题标题】:Imgur api responding with code 403 with server error 429Imgur api 响应代码 403 和服务器错误 429
【发布时间】:2021-05-17 13:50:48
【问题描述】:

我正在尝试使用带有 imgur api(react) 的 html 表单上传图片。

我在注册 api 时选择了带有回调 URL 的 OAuth 2 授权。

问题是 api 无法使用错误 429(有时是 net::ERR_HTTP2_PROTOCOL_ERROR)。

这是代码

const imageUpload = (e) => {
    console.log("called");
    var fileIn = e.target;
    var file = fileIn.files[0];
    if (file && file.size < 5e6) {
        const formData = new FormData();

        formData.append("image", file);
        fetch("https://api.imgur.com/3/image", {
            method: "POST",
            headers: {
                Authorization: "Client-ID //my client Id",
                Accept: "application/json",
            },
            body: formData,
        })
            .then((response) => response.json())
            .then((response) => {
                e.preventDefault();
                console.log(response);
                console.log(response.data.link);
                url_in = response.data.link;
            });
    } else {
        console.error("oversized file");
    }
}

这是输入标签代码

<input type="file" name="image" id="upload" onChange={imageUpload}></input>

我只需要上传图片的url

【问题讨论】:

  • 今晚我一直在发疯,试图找出类似的东西。我正在尝试从本地运行的反应应用程序中运行一个简单的搜索,但我只收到 429 个错误。如果我用 curl 访问相同的 url,它可以正常工作并返回结果。
  • WSL 用户解决方案 -> stackoverflow.com/questions/66616782/…
  • 这是我为 WSL 用户提供的解决方案 -> stackoverflow.com/questions/66616782/…

标签: reactjs imgur


【解决方案1】:

根据某人在 this answer 中的评论,我将 package.json 中的启动脚本更改为 "start": "react-scripts start --host 0.0.0.0"。然后我将浏览器指向http://0.0.0.0:3000/,然后我就能得到来自 imgur 的回复。

【讨论】:

  • 感谢您的建议!我已经尝试过了,它仍然托管在 localhost:3000 中。我不习惯反应......你能解释更多关于主机设置的信息吗? (尝试在 .env 文件中设置 HOST=0.0.0.0)
  • 我认为传递给 react-scripts 的主机选项只是告诉它确保可以在该地址访问内容。 0.0.0.0 无论如何只是指您自己的机器。 react-scripts 仍然会自动打开浏览器到 localhost:3000,但是如果您将 url 更改为 0.0.0.0:3000,您应该会看到您的页面。我认为 imgur 检查请求标头并自动拒绝来自本地主机的任何内容。
  • 谢谢!这对我有用。希望你有一个美好的一天
  • 我发现在 Windows 上打开命令提示符并输入 ipconfig 会显示您的本地 IP。然后打开你的浏览器并输入 :3000 的 ip,这样它看起来就像 124.169.2.137:3000 (不是我的实际 ip 只是一个例子)。 Imgur 似乎想阻止 localhost 所以从其他东西运行它似乎有效。
猜你喜欢
  • 1970-01-01
  • 2020-11-28
  • 2022-01-21
  • 2018-05-26
  • 1970-01-01
  • 2021-10-24
  • 2011-04-21
  • 2013-03-29
  • 1970-01-01
相关资源
最近更新 更多