繁体   English   中英

调用 reddit api 以获取访问令牌被 CORS 策略阻止

[英]Calling reddit api to get access token is being blocked by CORS policy

我正在尝试在我的反应应用程序中使用 reddit api。 但是当我尝试获取访问令牌时,出现以下错误。
CORS 策略已阻止从源“https://www.reddit.com”访问“https://www.redditstatic.com/desktop2x/img/favicon/manifest.json”上的清单:没有“访问控制” -Allow-Origin' 标头出现在请求的资源上。

    const response = await axios({
      method: "post",
      url: "https://www.reddit.com/api/v1/access_token",
      auth: {
        user: process.env.REACT_APP_REDDIT_CLIENT_ID,
        password: process.env.REACT_APP_REDDIT_CLIENT_SECRET,
      },
      data: {
        grant_type: "authorization_code",
        code: code,
        redirect_uri: "http://localhost:3000/login",
      },
    });

我是 Reddit Api 和 Oauth 的新手,所以我真的不明白是什么问题。

我找到了解决方案。 问题是发送的参数不能是 json 格式。 所以我不得不将它们更改为 url 编码。

 const params = new URLSearchParams();
      params.append("grant_type", "refresh_token");
      params.append("refresh_token", refreshToken);

      const config = {
        headers: {
          "Content-Type": "application/x-www-form-urlencoded",
        },
        auth: {
          username: process.env.REACT_APP_REDDIT_CLIENT_ID,
          password: process.env.REACT_APP_REDDIT_CLIENT_SECRET,
        },
      };

      const response = await axios.post(getPrefix(url), params, config);

另外由于我的本地环境是 http。 它导致 cors 问题。 所以我在我的 url 前面加上了cors-anywhere并且它可以工作。 如前所述,我尝试使用reddit.local ,但似乎不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM