Heroku 服务器上的 CORS 策略问题

CORS policy issue on Heroku Server

我制作了一个客户端-服务器应用程序。 后端使用 Node、Express 和 MongoDB Atlas。

我已经安装了 CORS 并将其用作中间件,例如:

const cors = require('cors')

app.use(cors())

然后我将它部署到返回端点的 heroku;喜欢:https://express-server.herokuapp.com

我在基于 React 的客户端中使用了该端点。

我使用 axios 向服务器发出请求,例如:

const response = await axios.post('https://express-server.herokuapp.com/users/login' ,{some data here})

这是错误发生的地方。每次我发出请求时,控制台都会弹出以下响应。

这个有什么解决办法????

您必须在您的服务器中定义应接受来源请求

假设您的本地主机在端口 3000 上运行。试试这个代码

app.use(
    cors({
        origin: "http://localhost:3000", 
        credentials: true,
    })
);

注意:凭证 true 设置为仅传递 HTTP cookie

添加到main.ts

app.enableCors({
    origin: true,
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS',
    credentials: true,
  });

您需要支持 CORS preflight requests to do POST operations with json data. See this: 这意味着处理 http 选项。

在您的 Express 应用程序中,在其他路线之前有类似的内容。

app.options('*', cors())