下面的 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 的过去会话数据都会被删除。会话值会被重置,但仍然无法弄清楚为什么会发生这种情况。