在我的应用程序中,当客户端发生特定事件时,我想保存会话。我在客户端使用此功能:
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", '/saveSession/' + data, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4) {
if (xmlhttp.status === 200) {
} else {
reject(xmlhttp.statusText);
}
}
};
xmlhttp.send();
resolve()
然后在服务器中保存会话:
router.post('/saveSession/:data', function (req, res, next) {
const data = req.params.data;
mySpecialFunction(data)
.then(function (decodedData) {
var info = decodedData.info;
req.session.info = info;
req.session.save();
res.end();
}).catch(function (error) {
req.session.info = '';
res.redirect('/login');
});
})
我的服务器设置:
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const session = require('express-session');
const app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
//Body parser setup
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
//Session setup
app.use(session({
secret: 'secret:D',
resave: true,
saveUninitialized: false,
cookie: { secure: false }
}))
//routes
const main = require('./source/main');
app.use('/', main);
问题:如何在这种情况下保存会话并以不同的方式访问它?我知道我在使用POST时必须结束请求,所以我尝试了req.session.save()以及res.send()和req.end()……没有任何作用。你有什么主意吗?如果您需要更多信息,请写评论