为什么expressjs每个OPTIONS响应都发送Set-Cookie头?

我发现我的快递服务器发送了一个Set-Cookie头,以响应我的前端Angular.js项目所做的每个OPTIONS请求。

这个cookie在每个OPTIONS请求上都有一个新的值,但实际上从来没有被Chrome存储过。

当我使用passport.js来validation用户时,对POST请求的响应具有相同的头(同样是一个新的cookie),但是这次我可以看到它被存储,并随后在Cookie头中发送请求。

哪个expression模块正在做这个,为什么? 为什么Chrome不存储cookie?

这比任何东西都更好奇,因为它不会造成任何问题(当试图追踪一个问题时引起了很多混乱)。

OPTIONS方法不应该有副作用。 请参阅此HTTP 1.1 文档

选项是对服务器的信息请求。 这样的请求不被认为是用户和服务器之间的真实交互。 服务器可能使信息可供所有用户使用。

浏览器尊重这一点,并select忽略符合规范的cookies。 这就是说公开向用户传递cookie数据的安全风险。 即使它无效,它也可以揭示服务器端的内部,这可以让黑客利用它。

很确定这是当前会话模块的一个错误。 如果你使用新的cookies会话,那么你不会遇到这个问题。 随时提交一个错误: https : //github.com/expressjs/session