【发布时间】:2013-01-25 21:33:35
【问题描述】:
我有一个 Web 应用程序,它使用 jQuery.ajax 向另一台主机执行请求(现在实际上是相同的,因为我使用的是不同的“localhost”端口)。然后服务器返回一个cookie。
Chrome 的开发工具中显示的 HTTP 响应中的 cookie 值是
Set-Cookie: MyUserSession=JxQoyzYm1VfESmuh-v22wyiyLREyOkuQWauziTrimjKo=;expires=Sun, 10 Feb 2013 22:08:47 GMT;path=/api/rest/
因此未来 4 小时到期。
但是,cookie 不会随后续请求一起存储和发送(在 Chrome 和 Firefox 中测试)。我首先认为它必须是“2013 年 2 月 10 日”而不是“2013 年 2 月 10 日”,但这并没有什么不同。 Chrome 还会在响应的 cookie 选项卡上将“过期”显示为“无效日期”,但这也可能是 Dev Tools bug。
有什么想法吗?
【问题讨论】:
-
您是否尝试在网络服务器中运行您的代码,例如不在本地主机上?
-
你用什么语言写这个?
-
另外,假设您不在格林威治标准时间,您在哪个时区?
-
我使用ServiceStack 来提供网络服务。我的时区是柏林(目前是 GMT+1),所以这不是 IMO 的问题。
-
我现在也尝试在外部主机上使用服务器,同样的问题。甚至将 cookie 更改为简单的“MyUserSession=TESTTEST”,即会话到期且没有 URL 路径限制 - 仍然没有被存储!
标签: ajax http cookies cross-domain same-origin-policy