2012-10-15 96 views
1

是否可以使用javascript編輯cookie內的字段? Cookie看起來像這樣修改cookie中的字段

cookie_session=[{"id":"1526","username":"test","email":"[email protected]"}] 

例如,是否可以編輯字段用戶名的值?

我試圖使用

document.cookie="Field=myValue"

但是當我使用它,它設置cookie的整體價值而不是myvalue的某一個領域內它。

另外,是否有可能解析用戶名的值,以便稍後用於POST請求?

+0

你爲什麼要爲一個請求中提取用戶名,該Cookie已經一起發送? – Bergi

+0

我希望能夠讀取cookie中字段的值。 – mormaii2

+0

Duplicate http://stackoverflow.com/questions/4003823/javascript-getcookie-functions – mrk

回答

3

Cookie只是一個字符串。您正在存儲cookie內的JavaScript對象。爲了修改對象的單個部分,您需要解碼JSON,編輯屬性並將對象重新編碼回字符串以將其存儲在cookie中。

btw - cookies不是爲了存儲JavaScript對象。如果您不需要服務器上的數據,那麼最好使用本地/會話存儲。有jQuery插件允許這些機制以跨瀏覽器友好的方式工作。

編輯:一個例子可以在這裏找到:Pure Javascript - store object in cookie

+0

如何解析cookie中的某個字段? – mormaii2

+2

因此,由於cookie只是一個字符串,它沒有字段。現在在你的情況下,字符串恰好是一個表示javascript對象的字符串(JSON)。您必須首先將JSON解析爲真正的JavaScript對象。此時,您可以更改對象上的屬性。然後,你將不得不將對象「stringify」回JSON並保存回cookie中。 –

+0

這聽起來很難,我不太瞭解JavaScript。我不知道是否有可能,但我想要做的是:當用戶訪問一個頁面,他的用戶名只存儲在一個cookie中,我讀取該cookie和用戶名,使用它作爲變量發送基於POST請求在他們的用戶名。這甚至有可能嗎? – mormaii2