2011-08-26 63 views
4

我有兩個cookie具有相同名稱但域稍有不同的情況(cookie1具有域example.com,而cookie2具有子域(包括.example.com))。按域訪問Rails Cookie

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 /曲奇」。我不明白你爲什麼可以設置域名等信息,但不能訪問它。

回答

4

顯然我想做的事情是不可能的。 HTTP規範只允許通過名稱來訪問餅乾,即使他們可以通過站點設置:

當請求從一個HTTP服務器的URL,瀏覽器將匹配 URL對所有Cookie,如果任何人匹配,包含 的一行包含在所有匹配cookie中的名稱/值對將包含在 HTTP請求中。以下是該行的格式:Cookie: NAME1 = OPAQUE_STRING1; NAME2 = OPAQUE_STRING2 ... http://curl.haxx.se/rfc/cookie_spec.html

+0

你對此做了什麼?我陷入了類似的情況。 – shreyj

+0

我們放棄了重新設計的東西,所以它不再是一個問題。人們可以嘗試給這兩個餅乾不同的名字。 –