首页 > 解决方案 > 快速会话不存在

问题描述

我正在制作一个React 项目,并且我使用Express作为后端。我设置http://mini-api.moonlab.ga为 Express 服务器的虚拟主机。

我发送了一个 HTTP 请求来表达服务器Fetch

fetch("http://mini-api.moonlab.ga/login/", {
    credentials: "include"
})

正如我所料,有一个CORS错误。所以我安装了cors包,我在 Node.js 中设置了这样的代码:

app.use(cors({
    origin: true,
    credential: true
}));

我像这样从服务器响应客户端:

app.get("/login", (req, res) => {
    const session = req.session;
    if (session.miniAccount == undefined) {
        session.miniAccount = Math.floor(Math.random() * 1000000);
    }

    res.writeHead(200, {"Access-Control-Allow-Credentials": true});
    res.write(String(session.miniAccount));
    res.end();
})

在我这样做之后,没有任何 CORS 错误,但会话不会持续存在。当我再次发送请求时,会话数据会保持更改。

那么如何使会话持续存在?

服务器的会话代码:

app.use(express_session({
    secret: secret.app_key,
    resave: false,
    saveUninitialized: true
}));

标签: node.jsreactjsexpresssession

解决方案


我自己通过编辑解决了package.json

"proxy": "mini-api.moonlab.ga"package.json.

比我编辑fetch()的 .

  • 以前的
fetch("http://mini-api.moonlab.ga/login")
  • 新的
fetch("/login")

它奏效了。


推荐阅读