0

下面的 API 基本上将数据存储在会话中,如果不存在则返回空 JSON,否则发送与该邮件对应的存储会话数据:

app.use('/session', function(req, res) {
  if (req.body.email in req.session) {
    console.log("user data already available");
    res.send(req.session[req.body.email]);
  } else {
    req.session[req.body.email] = {};
    req.session[req.body.email]["email"] = req.body.email;
    req.session[req.body.email]["gender"] = req.body.gender;
    req.session[req.body.email]["dbname"] = req.body.dbname;
    console.log("user session stored");
    res.send({});
  }
});

下面是我从我的应用程序中进行的 ajax 调用。这是一个跨域调用,我已经相应地设置了响应头。

$.ajax({
    url: 'url/session',
    type: "POST",
    crossOrigin: true,
    data: {
      "email": "email",
      "gender": "all",
      "dbname": "dbname"
    },
    success: function(data) {
      console.log("inside session api call success");
      console.log(data)
    }
    });
});

现在的问题是,如果我使用邮递员访问 API,它可以正常工作,但是当我在我的应用程序中使用它时,它每次都会覆盖会话并返回空 json。我究竟做错了什么?

编辑:发现每次发生 ajax 调用时,所有电子邮件 ids 的过去会话数据都会被删除。会话值会被重置,但仍然无法弄清楚为什么会发生这种情况。

4

0 回答 0