【问题标题】:.. from origin .. has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.. from origin .. 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态
【发布时间】:2021-04-15 15:37:12
【问题描述】:

我对提出 API 请求还很陌生。我正在尝试使用来自我的 React 项目的简单 axios 发布请求来设置传入的 slack webhook,但是我一直收到 CORS 策略错误。该请求在失眠症中完美运行。

我正在使用 ngrok 将我在本地计算机上运行的 Web 服务器公开到 Internet(我认为这可以解决问题。)所以我从 https://...ngrok.io 发出请求,但是我仍然在我的网络选项卡中收到“状态代码:400”以及上述错误。

 axios({
      method: "post",
      url:
        "https://hooks.slack.com/services/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",
      headers: { "Content-type": "application/json" },
      data: { text: "Hello, World!" },
    }).then(
      (response) => {
        console.log(response);
      },
      (error) => {
        console.log(error);
      }
    );
  };

stackoverflow 上有类似的错误,但没有一个能解决我的错误。我真的很想了解为什么会发生这种情况,所以任何建议都将不胜感激。

【问题讨论】:

  • 没有任何改变。我仍然收到同样的错误。我试过... headers: { Accept: "application/json, text/plain, /" } 并且没有 headers,但我收到了同样的错误。

标签: reactjs post cors


【解决方案1】:

修复了它,对于那些有同样问题的人: 对我有用的是将 Content-Type 标头设置为 application/x-www-form-urlencoded。在这个线程中找到它:https://github.com/axios/axios/issues/475 这似乎触发了“简单请求”,因此避免了触发 CORS 预检。 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests

【讨论】:

    猜你喜欢
    • 2020-01-29
    • 2020-07-30
    • 2021-09-16
    • 2021-05-23
    • 2019-08-09
    • 2019-07-07
    • 2019-04-17
    • 2020-06-06
    相关资源
    最近更新 更多