Ron*_*onK 13 cookies internet-explorer
我们有多个Web应用程序副本,它们部署在同一个域的多个路径上.
例:
每个实例维护一组饼干的每一个其定义path为"/" + .getWebDirRoot()-即/abc,/xyz,/abc123
执行以下流程时:
最后一步失败,因为IE我们发送了错误的cookie - 它发送的是http://mydomain.com/abc而不是http://mydomain.com/abc123
这在FireFox中不会发生.(我还没有尝试过任何其他浏览器).
这是一个已知的行为IE(我测试IE9和IE8)?
有没有办法克服它(以程序化的方式)?
注:只是为了澄清,这并没有切换时发生http://mydomain.com/abc到http://mydomain.com/xyz -行为被严格限制流动哪里currentUrl.startswith(urlAssociatedWithCookie) == true
我使用Fiddler检查了行为- 我清楚地看到abc123发送的HTTP请求与cookie的值属于abc.
我还检查了FireFox上的cookie,它们是预期的 - 每条路径创建一个.
Ron*_*onK 22
经过一天多的调查,到处寻找有关IE行为的规范,我什么也没想到 - 除了理解当IE从域xyz和路径看到cookie 时abc,它会发送给任何发送到任何URL的请求域和路径,例如` http:// xyz/abc123 '.
所以我最终做的是更改我的cookie创建,而不是:
Name: mycookie
Path: /abc
Run Code Online (Sandbox Code Playgroud)
我现在创建以下内容:
Name: mycookie
Path: /abc/
Run Code Online (Sandbox Code Playgroud)
这解决了没有弹跳的问题 - cookie在客户端上成功保存,并且正确的cookie总是被发送到服务器.
注意:我检查了RFC的HTTP Cookie,发现了这个:
如果至少
满足下列条件之一,请求路径路径将匹配给定的cookie路径:o cookie路径和请求路径是相同的.
o cookie-path是请求路径的前缀,cookie路径的最后一个字符是%x2F("/").
o cookie-path是请求路径的前缀,而cookie路径中未包含的请求路径的第一个字符是%x2F("/")字符.
应该在这里应用的场景是第3个,但看起来IE在这种情况下不符合RFC ...
| 归档时间: |
|
| 查看次数: |
4208 次 |
| 最近记录: |