微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我无法在我的 MERN 应用程序中使用 CORS,如何解决这个问题?

如何解决我无法在我的 MERN 应用程序中使用 CORS,如何解决这个问题?

我正在尝试构建我的第一个 MERN 项目,当我尝试通过 React 从后端获取某些内容时,在 Chrome 中遇到了可怕的 CORS 错误。我尝试使用 CORS npm 包,但似乎无法解决问题。这是 Express 应用程序的 index.js。我也试过分别在 2 个路由器中使用 CORS,即使这样也没有用。

如何解决这个问题?提前致谢!

const express = require("express");
const memberRouter = require("./routers/Members");
const noticesRouter = require("./routers/Notices");
const port = process.env.PORT || 5000;
const cors = require('cors');

//Setting up express server
const app = express();

//Accept JSON request body
app.use(express.json());

//CORS call
app.use(cors());

app.listen(port,()=> console.log('Server is up on port ' + port));
//Using the router for Members
app.use(memberRouter);
//Using the router for Notices
app.use(noticesRouter);

解决方法

//Setting up express server
const app = express();

//CORS call
app.use(cors());

//Accept JSON request body
app.use(express.json());

尝试在 express.json() 中间件之前移动 cors 中间件。 Express 中间件按顺序执行,因此添加它们的顺序很重要。 Cors 通常应该是您添加到 Express 服务器的第一个中间件之一,除非您使用 helmet 中间件,我建议您这样做,因为头盔设置了许多可以缓解很多安全问题的标头。建议按照 express's docs 与 express 一起使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。