【问题标题】:Accessing Rails cookies by domain按域访问 Rails cookie
【发布时间】:2011-08-26 19:28:58
【问题描述】:

我遇到两个 cookie 具有相同名称但域略有不同的情况(cookie1 具有域 example.com,而 cookie2 具有包含子域的 .example.com)。

cookies[ :cookie_name ] = { :value => "test_value_cookie_1", :domain => "example.com" }
cookies[ :cookie_name ] = { :value => "test_value_cookie_2", :domain => ".example.com" }

我想检测两个 cookie 何时存在,但不幸的是我不知道如何通过它自己的域访问 cookie。我可以说

if cookies[ :cookie_name ].blank?

但是怎么说呢

if cookies[ :cookie_name, :domain => ".example.com" ].blank?

if cookies[ :cookie_name ].domain[ ".example.com" ].blank?

我正在使用“actionpack-2.3.11/lib/action_controller/cookies”。我不明白为什么你可以设置域之类的信息,但不能访问它。

【问题讨论】:

    标签: ruby-on-rails ruby cookies rubygems actionpack


    【解决方案1】:

    显然我想做的事是不可能的。 HTTP 规范只允许通过名称访问 cookie,即使它们可以通过域设置:

    从 HTTP 服务器请求 URL 时,浏览器将匹配 针对所有 cookie 的 URL,如果其中任何一个匹配,则包含一行 所有匹配 cookie 的名称/值对将包含在 HTTP 请求。这是该行的格式:Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ... http://curl.haxx.se/rfc/cookie_spec.html

    【讨论】:

    • 你做了什么?我陷入了类似的境地。
    • 我们放弃并重新设计了一些东西,这样它就不再是问题了。可以尝试为这两个 cookie 赋予不同的名称。
    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 2018-09-27
    • 2010-10-30
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    相关资源
    最近更新 更多