使用REST API从本地主机开发时处理CORS-Streamlabs API

时间:2018-07-01 22:48:17

标签: javascript node.js rest cors

我确定这个问题会以某种方式被标记,但是经过数小时的搜索,没有提示可用信息。

许多项目要求我使用各种AP​​I。当前项目使用Twitch和Streamlabs API。尝试访问/ authorization端点时,遇到了CORS策略限制。这是因为我的推荐人/来源是本地主机。

CORS origin policy

我的问题在于,其他人如何设置环境以使其成为一个问题。我了解为什么CORS会(在一定程度上)阻止我,但是我不了解的是,如果localhost有一个全面的限制,我应该如何在生产服务器上工作。

我也尝试过在抓取和使用[no-cors]中操作标头,但是这里也没有用。有什么想法吗?

  // Starts authorization
  getAuth() {
    const data = fetch (`https://streamlabs.com/api/v1.0/authorize?client_id=${clientID}&response_type=code&redirect_uri=https%3A%2F%2Ftwitchinstudios.com&scope=donations.create%20donations.read%20alerts.write`, {
    headers: {
      "Origin" : "https://twitchinstudios.com",
      "Referer" : "https://twitchinstudios.com"
    },   
    mode: 'no-cors'});
    const code = data.json.code;
    console.log(code);

  // Post to /token endpoint
  const tokenCall = fetch (`https://streamlabs.com/api/v1.0/token?grant_type=authorization_token&client_id=knOhuT74QrSn8h1m8tU8ucrFfVIfUuVpll71ErbI&client_secret=${clientSecret}&redirect_uri=https%3A%2F%2Ftwitchinstudios.com&code=${code}`, {
    method: 'POST',
    mode: 'no-cors'
  })

以下是其API的文档:https://dev.streamlabs.com/reference

1 个答案:

答案 0 :(得分:0)

这不是CORS问题,也不是API问题。据我了解,这是一个问题。

对于任何绊脚石的人,请检查是否传递了任何Allow-Access标头,如果没有传递标头,则无意从网页级别访问它。

相反,允许我的节点服务器处理请求使我可以访问。