【发布时间】:2012-01-07 17:04:58
【问题描述】:
我们有一个网络应用的多个副本,这些副本部署在同一域的多个路径上。
示例:
每个实例维护一组 cookie,每个实例将其 path 定义为 "/" + .getWebDirRoot() - 即 /abc、/xyz、/abc123
执行以下流程时:
- 登录http://mydomain.com/abc
- 执行一些活动
- 退出
- 登录http://mydomain.com/abc123
- 执行一些活动
最后一步失败,因为 IE 向我们发送了不正确的 cookie - 它发送的是 http://mydomain.com/abc 而不是 http://mydomain.com/abc123 的 cookie
这在 FireFox 中不会发生。 (而且我还没有尝试过任何其他浏览器)。
这是IE 的已知行为吗(我测试了IE9 和IE8)?
有没有办法克服它(以编程方式)?
注意:澄清一下,从http://mydomain.com/abc 切换到http://mydomain.com/xyz 时不会发生这种情况——这种行为严格限制在currentUrl.startswith(urlAssociatedWithCookie) == true 的流中
我使用 Fiddler 检查了该行为 - 我清楚地看到 abc123 的 HTTP 请求使用属于 abc 的 cookie 的值发送。
我还检查了 FireFox 上的 cookie,它们符合预期 - 每个路径创建一个。
【问题讨论】: