如何访问由node.js Express创build的客户端Cookie(带有会话ID)?

我以为我明白了Cookies是如何工作的,但是我认为不是因为我被困在以下方面:

我不能用document.cookie显示一个cookie,用alert(document.cookie)testing; 在我的代码。

我正在玩节点,并在我的服务器上有以下代码片段(其他所有工作和服务页面与Express):

var express = require('express') , util = require('util') , MemoryStore = express.session.MemoryStore , app = express.createServer() , sessionStore = new MemoryStore(); app.configure(function() { app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.logger()); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.session({ store: sessionStore, secret: 'BBQ12345AHHH', key: 'cookie.sid' })); app.use(app.router); app.use(express.static(__dirname + '/public')); }); 

在我的服务器上,当我点击index.ejs时,我看到一个cookie被发送。 Chrome还会在index.ejs的标头中显示cookie。 但是,当我在index.ejs页面添加alert(document.cookie)时,警报是空的。 我究竟做错了什么?

谢谢

连接会话cookie默认为httpOnly尊重哪个Chrome浏览器,IE浏览器cookie不能被客户端JavaScript访问。

会话cookie不需要被客户端javascript读取,除非它是由恶意的XSS脚本,所以它都是好的。

如果你想重写它,请尝试:

 app.use(express.session({ store: sessionStore, secret: 'BBQ12345AHHH', cookie: {httpOnly: false}, key: 'cookie.sid' } )) 

来源http://www.senchalabs.org/connect/session.html#session

你是否正确地调用了cookie? 我在学习时发现这个页面很有帮助:

http://www.quirksmode.org/js/cookies.html