当我尝试使用 Express 通过 Node 获取会话时,我的问题与客户端有关。
例如,对于这个片段https://gist.github.com/visionmedia/1491756,我总是用我的 ajax 请求“查看 0 次”,但是用我的浏览器没问题,变量增量也没问题。
我已经尝试过使用 PHP 并且一切正常。使用浏览器和 Ajax 请求。
这与这篇文章的问题相同:Session cookies do not change using ajax and nodejs server
编辑
我使用此代码来获取一些 JSON 数据并获取 nodeJS Session :
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.onreadystatechange = function () {
alert(xhr.responseText);
if (xhr.readyState != 4 || xhr.status != 200) return;
var response = {};
response = xhr.responseText;
console.log(response);
return response;
}
xhr.open(type, url);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
对于 NodeJS,我使用以下代码:
// In my app.js
// To enable CORS
var allowCrossDomain = function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header('Access-Control-Allow-Credentials', 'true');
next();
};
//...
// The session "visitCount"
app.get('/', function(req, res, next) {
req.session.visitCount = req.session.visitCount ? req.session.visitCount + 1 : 1;
res.send('You have visited this page ' + req.session.visitCount + ' times');
});
谢谢你的帮助 !