你好:)我正在尝试解决我的节点应用程序的问题。在开发中,我没有任何担心,一切都是功能性的。我想通过CPANEL部署我的应用程序,我做了一个测试路线,以验证应用程序的工作。
这将返回状态500,并显示以下消息:“内部服务器错误”。
我检查了我的server.js文件,我不明白问题来自哪里。当我从前面发出请求时,我也会收到这样的消息:CORS策略已阻止从源“http://www.example.com”访问位于“http://cinefilmsnodeserver.cinefilms.fr/api/check”的XMLHttpRequesthome.cinefilms.fr:请求的资源上不存在“Access-Control-Allow-Origin”标头。
cors头文件是在我的server.js文件中定义的
下面是文件代码:
const express = require("express");
const postRoutes = require("./routes/post.routes");
const userRoutes = require("./routes/user.routes");
require("dotenv").config();
const app = express();
const PORT = process.env.PORT || 3001;
app.use(express.json());
app.get("/test-no-cors", (req, res) => {
res.status(200).json({ message: "API connected successfully" });
});
const allowOrigins = [process.env.CLIENT_URL];
app. use((req, res, next) => {
if (req.headers.origin && allowOrigins.includes(req.headers.origin)) {
res.setHeader("Access-Control-Allow-Origin", req.headers.origin);
} else {
res.setHeader("Access-Control-Allow-Origin", "null");
}
res.setHeader(
"Access-Control-Allow-Headers",
"Content-Type, Accept, Origin, Authorization"
);
res.setHeader(
"Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, PATCH, OPTIONS"
);
res.setHeader("Access-Control-Allow-Credentials", "true");
next();
});
app. use("/api", userRoutes);
app. use("/api/post", postRoutes);
app. listen(PORT, () => {
console.log(`Server listening on port ${PORT}`);
});`
先谢谢你的帮助
我希望我可以部署我的nodejs应用程序
1条答案
按热度按时间yws3nbqq1#
在您的代码中,“/test-no-cors路由”是在CORS中间件之前定义的,因此您的CORS策略中间件不会应用于它。
要将CORS策略应用于所有路由,请在定义任何路由之前定义CORS中间件。
下面是正确的代码: