You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署MERN应用至cPanel遇CORS问题:MongoDB引入即触发故障

MERN应用部署到cPanel时的CORS跨域问题

本地开发环境运行正常,但部署到cPanel后出现CORS错误。尝试过切换mongoose到MongoDB、手动配置CORS、逐行排查代码,最终发现仅引入MongoDB相关模块(未实例化使用)就会触发CORS错误。

无法运行的代码

const express = require('express');
const app = express();
const cors = require("cors");
const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = "mongo url";

// const client = new MongoClient(uri, {
//   serverApi: {
//     version: ServerApiVersion.v1,
//     strict: true,
//     deprecationErrors: true,
//   }
// });

app.use((req, res, next) => {
    res.header("Access-Control-Allow-Origin", "*")
    res.header(
      "Access-Control-Allow-Headers",
      "Origin, X-Requested, Content-Type, Accept Authorization"
    )
    if (req.method === "OPTIONS") {
      res.header(
        "Access-Control-Allow-Methods",
        "POST, PUT, PATCH, GET, DELETE"
      )
      return res.status(200).json({})
    }
    next()
  })
app.use(cors());

app.get("/", (req, res) => {
    res.json({
        name: "Code Bless You",
        Subscribe: true,
    });

});

app.listen(5200, () => console.log("Server is running on port 5200"));

移除MongoDB模块后可正常运行的代码

const express = require('express');
const app = express();
const cors = require("cors");
// const { MongoClient, ServerApiVersion } = require('mongodb');
const uri = "mongo url";

// const client = new MongoClient(uri, {
//   serverApi: {
//     version: ServerApiVersion.v1,
//     strict: true,
//     deprecationErrors: true,
//   }
// });

app.use((req, res, next) => {
    res.header("Access-Control-Allow-Origin", "*")
    res.header(
      "Access-Control-Allow-Headers",
      "Origin, X-Requested, Content-Type, Accept Authorization"
    )
    if (req.method === "OPTIONS") {
      res.header(
        "Access-Control-Allow-Methods",
        "POST, PUT, PATCH, GET, DELETE"
      )
      return res.status(200).json({})
    }
    next()
  })
app.use(cors());

app.get("/", (req, res) => {
    res.json({
        name: "Code Bless You",
        Subscribe: true,
    });

});

app.listen(5200, () => console.log("Server is running on port 5200"));

前端Axios请求代码(App.jsx)

const [responseData, setResponseData] = useState(null);

const handleCorsTest = async () => {
  try {
    const response = await axios.get('https://api.siperjaka.cloud');
    setResponseData(response.data);
    console.log(response.data);
  } catch (error) {
    console.error('CORS Test Error:', error);
  }
};
<button onClick={handleCorsTest}>Test CORS</button>

收到的错误信息

[Error] Origin https://siperjaka.cloud is not allowed by Access-Control-Allow-Origin. Status code: 500
[Error] XMLHttpRequest cannot load https://api.siperjaka.cloud/ due to access control checks.
[Error] CORS Test Error:
D
code: "ERR_NETWORK"
config: {transitional: {silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false}, adapter: ["xhr", "http"], transformRequest: Array, transformResponse: Array, timeout: 0, …}
message: "Network Error"
name: "AxiosError"
request: XMLHttpRequest {listeners: Object, onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, …}
stack: "D@https://siperjaka.cloud/assets/index-aAE4spmR.js:40:147904↵@https://siperjaka.cloud/assets/index-aAE4spmR.js:42:162726"
D Prototype
(anonymous function) (index-aAE4spmR.js:44:172337)
asyncFunctionResume
(anonymous function)
promiseReactionJobWithoutPromise
promiseReactionJob
[Error] Failed to load resource: Origin https://siperjaka.cloud is not allowed by Access-Control-Allow-Origin. Status code: 500 (api.siperjaka.cloud, line 0)

内容的提问来源于stack exchange,提问作者Hakim223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:58:08