【问题标题】:Why I can request to a API with Postman but not working in React JS?为什么我可以使用 Postman 请求 API,但不能在 React JS 中工作?
【发布时间】:2021-05-14 15:06:28
【问题描述】:

我可以在 Postman 中非常轻松地请求 API。但是当我使用 React JS 和 localhost:3000 尝试它时,它会抛出一个错误:

请告诉我为什么?!谢谢

【问题讨论】:

    标签: reactjs axios postman


    【解决方案1】:

    https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/ 如果你知道 CORS 问题,解释起来会更容易。

    因为 Postman 发送的请求和你的 React.JS 发送的请求是不同的。 当您直接使用 Postman 发送请求时,请求被视为“一个人”发送,就像您在浏览器中输入 API 的 URL。

    这与使用 React 发送请求不同,因为 React 是一种基于 JavaScript 的前端框架语言,由您的浏览器“执行”。 如果您碰巧访问了一个恶意网站,并且该网站发送预期的 React(或一些 JavaScript)代码来操纵您的浏览器(一个简单的示例:如果没有限制,它可以将您的浏览器用作网络爬虫来其他网站)。

    您知道每次打开网站时,您的浏览器都会执行该网站的大量代码。

    因此,您可能需要了解我们为什么需要 CORS 政策,以及 CORS 如何开发您的 API。

    【讨论】:

    • 谢谢,但是应该怎么解决呢?我添加了这个:'Access-Control-Allow-Origin': '*' 但仍然是同样的错误。
    • 我读到 CORS 是由服务器声明的。谢谢!
    • 如果您正在开发中,您可以设置您的 API 以允许一些可以通过策略的特殊域。大多数支持后端API的框架(例如Laravel/Rails)都有相应的方法可以做到这一点,但我不知道你使用什么后端,你可能需要自己弄清楚。或者您可以将您的网站放在您的 API 的确切机器中(或任何方法使您的前端站点的主机域与您的 API 一致),这样您的 React 只会向同一个域发送请求。
    • @AliBahaari 欢迎您。你也可以看到这个帖子link,这个帖子很好地描述了它是如何工作的。
    猜你喜欢
    • 2021-10-05
    • 2019-04-27
    • 2018-07-26
    • 2022-01-12
    • 2020-12-11
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多