何时使用代理以及何时在反应项目中使用 CORS?



我是反应开发的初学者,我对何时应该使用代理或cors使前端与后端通信感到困惑。还是我需要同时使用两者?比如用于开发的代理和用于生产的 CORS?

当您希望使后端服务器可供任何请求使用 CORS 时,CORS 与后端完全相关。

例:

const app=require('express');
const cors=require('cors');
app.use(cors())// server will respond to any domain

大多数情况下,当您希望能够连接到 webpack 开发服务器未托管但在发布时将由您的服务器托管的 api 时,您将使用代理。一个例子可能比任何事情都更能说明这一点。

开发时,您有以下方案

API 服务器 -在本地主机运行:4567 Webpack 开发服务器 - 在本地主机运行:8080

您的应用程序.js将像这样向 API 服务器发出请求

$.ajax({
url: '/api/getOwnedGames',
...
});

如果没有代理,这实际上会向localhost:8080/api/getOwnedGames发出请求(因为您是从webpack开发服务器浏览的(。但是,如果您像这样设置代理...

proxy: {
'/api/*': {
target: 'http://localhost:4567'
}
}

API 请求将被重写为 http://localhost:4567/api/getOwnedGames。

如果您没有托管自己的 API,则可能不需要代理。

最新更新