在 JavaScript 中通過(guò)?document.cookie
?屬性,你可以創(chuàng)建、維護(hù)和刪除 cookie。創(chuàng)建 cookie 時(shí)該屬性等同于?Set-Cookie
?消息頭,而在讀取 cookie 時(shí)則等同于?Cookie
?消息頭。在創(chuàng)建一個(gè) cookie 時(shí),你需要使用和?Set-Cookie
?期望格式相同的字符串:
document.cookie="name=Nicholas;domain=nczonline.net;path=/";
設(shè)置?document.cookie
?屬性的值并不會(huì)刪除存儲(chǔ)在頁(yè)面中的所有 cookie。它只簡(jiǎn)單的創(chuàng)建或修改字符串中指定的 cookie。下次發(fā)送一個(gè)請(qǐng)求到服務(wù)器時(shí),通過(guò)?document.cookie
?設(shè)置的 cookie 會(huì)和其它通過(guò)?Set-Cookie
?消息頭設(shè)置的 cookie 一并發(fā)送至服務(wù)器。這些 cookie 并沒(méi)有什么明確的不同之處。
要使用 JavaScript 提取 cookie 的值,只需要從?document.cookie
?中讀取即可。返回的字符串與?Cookie
?消息頭中的字符串格式相同,所以多個(gè) cookie 會(huì)被分號(hào)和字符串分割。例如:
name1=Greg; name2=Nicholas
鑒于此,你需要手工解析這個(gè) cookie 字符串來(lái)提取真實(shí)的 cookie 數(shù)據(jù)。當(dāng)前已有許多描述如何利用 JavaScript 來(lái)解析 cookie 的資料,包括我的書(shū),Professional JavaScript,所以在這我就不再說(shuō)明。通常利用已存在的 JavaScript 庫(kù)操作 cookie 會(huì)更簡(jiǎn)單,如使用?YUI Cookie utility?來(lái)處理 cookie,而不要手工重新創(chuàng)建這些算法。
通過(guò)訪問(wèn)?document.cookie
?返回的 cookie 遵循發(fā)向服務(wù)器的 cookie 一樣的訪問(wèn)規(guī)則。要通過(guò) JavaScript 訪問(wèn) cookie,該頁(yè)面和 cookie 必須在相同的域中,有相同的?path
,有相同的安全級(jí)別。
注意:一旦 cookie 通過(guò) JavaScript 設(shè)置后便不能提取它的選項(xiàng),所以你將不能知道?domain
,path
,expires
?日期或?secure
?標(biāo)記。
更多建議: