我的情况是两个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”。我不明白为什么你可以像域一样设置信息,但不能访问它。
答案 0 :(得分:4)
显然我想做的事是不可能的。 HTTP规范只允许通过名称访问cookie,即使它们可以通过域设置:
从HTTP服务器请求URL时,浏览器将匹配 针对所有Cookie的网址,如果其中任何一个匹配,则包含一行 所有匹配的cookie的名称/值对将包含在 HTTP请求。这是该行的格式:Cookie: NAME1 = OPAQUE_STRING1; NAME2 = OPAQUE_STRING2 ...... http://curl.haxx.se/rfc/cookie_spec.html