我是React开发的初学者,对于何时应该使用代理或cors使前端与后端进行对话感到困惑。还是我需要同时使用两者?例如用于开发的代理和用于生产的cors?
答案 0 :(得分:0)
当您希望使后端服务器可访问任何使用CORS的请求时,CORS与后端完全相关。
示例:
const app=require('express');
const cors=require('cors');
app.use(cors())// server will respond to any domain
大多数情况下,当您希望能够连接到webpack开发服务器未托管但将在发布时由您的服务器托管的api时,通常会使用代理。一个例子可能会比任何事情都更清楚。
开发时,您会遇到以下情况
API服务器-运行在localhost:4567 Webpack开发服务器-运行在localhost:8080
您的App.js将像这样向API服务器发出请求
$.ajax({
url: '/api/getOwnedGames',
...
});
没有代理,这实际上将向localhost:8080 / api / getOwnedGames发出请求(因为您正在从webpack开发服务器浏览)。但是,如果您像这样设置代理...
proxy: {
'/api/*': {
target: 'http://localhost:4567'
}
}
api请求将被重写为http://localhost:4567/api/getOwnedGames。
如果您不托管自己的api,则可能不需要代理。