前端 package.json 中的代理如何配置 void cors 请求?

How does a proxy config in frontend package.json a void cors request?

也许我还不太了解代理,但我的服务器后端在 localhost:7000 上,前端客户端在 localhost:3000 上。 现在我在我的前端配置了一个代理 package.json: "proxy": "http://127.0.0.1:7000"。这避免了在后端安装 cors 并接受了对我的服务器的请求。这是如何工作的,或者为什么要避免 cors 配置?那么proxy和cors有什么区别呢?

CORS 错误是由于在大多数浏览器中实现的 same-origin policy 引起的。更具体地说,您收到错误的原因是因为您正在向与您当前所在的来源不同的来源发出请求。在您的情况下,这是您在 http://localhost:3000 上的前端 运行,它试图访问 http://localhost:7000

上的后端

为了解决这个问题,您可以更改后端以发送 Access-Control-Allow-Origin 响应 header,其中包含前端的来源 - 或者...您使用代理。

代理基本上试图通过假装您的后端位于同一来源 localhost:3000 来欺骗浏览器,而在幕后它正在从实际来源访问资源 localhost:7000.

您可以阅读这篇 article,其中有更详细的解释。