我有两个运行在不同端口上的Node.js(Express)应用程序。其中一个运行在localhost:3000
,另一个运行在localhost:4000
。端口3000
上的应用程序具有以下cookie配置:
app.use(express.cookieParser())
app.use(express.session({
key: settings.session.key,
secret: settings.session.secret,
cookie: settings.session.cookie,
fingerprint: function () { return '' },
store: new MemoryStore()
}))
另一个应用(位于端口4000
)具有以下功能:
app.use(express.cookieParser())
app.use(express.session({
key: settings.session.key,
secret: settings.session.secret,
cookie: settings.session.cookie,
fingerprint: function() { return '' },
store: new MongoSessionStore({ db: db })
}))
他们都使用相同的会话配置对象(唯一的区别是一个存储在MongoDB中,而另一个存储在内存中)。
我在
localhost:3000
上设置了一个cookie:res.cookie('mycookie', 'bar', { domain: 'localhost:4000' })
我使用jquery.ajax向
localhost:4000
的一个路由发送POST请求,但cookie mycookie
未出现。请注意:我已在localhost:4000
上设置了CORS以接受源localhost:3000
,并且当我使用Jquery进行post时,我使用xhrFields: { withCredentials: true }
。所以我的问题是,如何正确配置应用程序以相互设置cookie呢? :)