2011-09-15 80 views
0

我正在使用jquery cookie plugin將對象存儲在cookie中。該對象包含各種屬性,用於存儲有關該網站訪問者的信息。有沒有辦法檢索cookie並訪問這些屬性?或者我必須將每一段數據存儲在一個單獨的cookie中?這裏是我的代碼:將對象設置爲cookie並稍後檢索它的屬性

c.consumerID = data.LoginConsumer.ConsumerId; 
c.surveyCount = data.LoginConsumer.SurveyCnt; 
c.vehicleCount = data.LoginConsumer.VehicleCnt; 
c.sid = data.LoginConsumer.SurveyId; 
c.aid = data.LoginConsumer.ActivityId; 
c.loggedIn = true; 
$j.cookie('consumerCookie', c, { path: '/' }); 

console.log($j.cookie()); //WANT TO RETRIEVE THE VALUES OF THE OBJECT IN THE COOKIE HERE, LIKE c.sid 

回答

1

Cookie存儲字符串,因此如果要存儲對象的六個屬性,您必須將每個屬性單獨存儲爲自己的字符串並給每個名稱,否則您需要將所有屬性值合併爲一個串。

您可以使用JSON庫對整個對象進行串聯處理,然後在讀取cookie時重新讀入JSON。例如存儲在cookie中的所有數據,它的工作是這樣的:

$j.cookie('consumerCookie', JSON.stringify(c), { path: '/' }); 

而且,爲了回讀它,你可以這樣做:

var c = $j.parseJSON($j.cookie('consumerCookie')); 

注意:它不似乎jQuery已經內置了stringify,所以如果你使用stringify路由,對於舊版本的瀏覽器,你必須確保有一個JSON.stringify的能力。

+0

謝謝,這很好! – mheavers

1

你可以把它全部存儲在一個餅乾,但你需要以某種方式序列化對象,也許JSON。如果你走JSON路線,只需使用json2.js庫。

此外,請記住,單個Cookie大小有限制。在大多數瀏覽器中爲4k。

根據你在做什麼,如果你也使用PHP,你可能想改爲使用PHP sessions並將所有內容存儲在$ _SESSION變量的屬性中。這可以通過使用JSON的簡單AJAX調用來檢索。