以下是基本上在会话中存储数据的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.session值被重置但仍然无法弄清楚为什么会发生这种情况。