【发布时间】:2022-01-08 17:50:42
【问题描述】:
我正在尝试将我的前端连接到我的后端,并且我正在使用带有节点的快速服务器并做出反应。
这是我的前端获取请求:服务器在端口 5000 上运行
const response = await axios.post("http://localhost:5000/send-email", {
to_email: data.data.email,
url: data.data.url,
});
console.log(response);
结果如下:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/send-email. (Reason: CORS request did not succeed). Status code: (null).
我的后端有:
app.post("/send-email", async (req, res) => {
try {
const { to_email, url } = req.body;
console.log(to_email, url);
await sendMail()
.then((result) => console.log("Email sent...", result))
.catch((error) => console.log(error.message));
res.send({ express: "YOUR EXPRESS BACKEND IS CONNECTED TO REACT" });
} catch (error) {
console.log(error);
res.status(500).json({ message: error });
}
});
我也在使用核心,还有类似的东西:
// app.use(function (req, res, next) {
// // res.header("Access-Control-Allow-Origin", "*");
// res.header("Access-Control-Allow-Origin", "http://localhost:3000");
// res.header(
// "Access-Control-Allow-Headers",
// "Origin, X-Requested-With, Content-Type, Accept"
// );
// res.header("Access-Control-Allow-Methods", "POST, OPTIONS");
// res.header("Access-Control-Allow-Credentials", true);
// next();
// });
但我一直收到这个错误,我不知道如何摆脱它。我见过几个解决方案,它们要么是旧的,要么我尝试了其中一些,但它们根本不起作用。
【问题讨论】:
-
为什么“类似这样”的代码都被注释掉了?
-
好吧,既然那没有做任何事情,我只是将其注释掉,它根本没有帮助!
-
你在你的服务器上使用了 cors 库吗? const cors = require('cors'); app.use(cors({ origin: '*', methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,COPY', preflightContinue: false, optionsSuccessStatus: 204, }) );
-
是的,我喜欢这样: const cors = require("cors");和 app.use(cors());
-
可以在axios.post的第三个参数中填充一个header。 axios.post(URL、数据、标题)
标签: node.js reactjs express cors