什么时候在React项目中使用代理以及何时使用CORS?

时间:2018-10-05 12:25:51

标签: node.js reactjs

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

1 个答案:

答案 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,则可能不需要代理。