[JavaScript] cookie操作

(1)讀取cookie

讀取document.cookie會(huì)讀取到所有的cookie,
格式為:key1=value1; key2=value2; ...keyn=valuen

注:
<u></u>a=1&b=2,是一條cookie,名字為a。

(2)設(shè)置cookie

對(duì)document.cookie的寫(xiě)操作,會(huì)設(shè)置某個(gè)名字的cookie屬性。
但是,并不會(huì)覆蓋其他已有的cookie

例如:

document.cookie='id=1';

只會(huì)設(shè)置名字為name的cookie,并不影響其他cookie。

注:
一次不能同時(shí)對(duì)多條cookie操作。

document.cookie='a=1; b=2';

結(jié)果是只改了a的值。

(3)刪除cookie

無(wú)法直接刪除cookie,可以設(shè)置同名cookie的過(guò)期時(shí)間來(lái)刪除它。

例如:

//獲取當(dāng)前時(shí)間
var date=new Date();

//將date設(shè)置為過(guò)去的時(shí)間
date.setMilliseconds(date.getMilliseconds() + (-1) * 864e+5);

//將userId這個(gè)cookie刪除
document.cookie="id=1; expires="+date.toUTCString();

(4)把cookie保存到文件(指定expires

document.cookie賦值,會(huì)設(shè)置一個(gè)單會(huì)話cookie,
瀏覽器關(guān)閉后,這個(gè)cookie將消失。
這時(shí)候,cookie僅保存在內(nèi)存中,沒(méi)有保存到文件。

如果要長(zhǎng)期保存到文件,可以設(shè)置cookie的過(guò)期時(shí)間expires。

//獲取當(dāng)前時(shí)間
var date=new Date();

//將date設(shè)置為10天以后的時(shí)間
var expireDays=10;
date.setMilliseconds(date.getMilliseconds() + expireDays * 864e+5);

//將userId和userName兩個(gè)cookie設(shè)置為10天后過(guò)期
document.cookie="id=1; expires="+date.toUTCString();

注:
本地html文件,無(wú)法設(shè)置cookie

(5)指定主機(jī)名

<u></u>domain表示的是cookie所在的域,默認(rèn)為請(qǐng)求的地址,
如網(wǎng)址為www.google.com/test/test.aspx,那么domain默認(rèn)為www.google.com

而跨域訪問(wèn),
如域A為t1.google.com,域B為t2.google.com。

那么在域A生產(chǎn)一個(gè)令域A和域B都能訪問(wèn)的cookie,
就要將該cookie的domain設(shè)置為.google.com。
如果要在域A生產(chǎn)一個(gè)令域A不能訪問(wèn)而域B能訪問(wèn)的cookie,
就要將該cookie的domain設(shè)置為t2.google.com

可以通過(guò)domain參數(shù)來(lái)實(shí)現(xiàn)對(duì)其的控制,
其語(yǔ)法格式為:

document.cookie="name=value; domain=cookieDomain";

(6)指定path

<u></u>path表示cookie所在的目錄,
asp.net默認(rèn)為/,就是根目錄。

在同一個(gè)服務(wù)器上有目錄如下:/test/,/test/cd//test/dd/,
現(xiàn)設(shè)一個(gè)cookie1的path/test/,cookie2的path/test/cd/,
那么test下的所有頁(yè)面都可以訪問(wèn)到cookie1,
/test//test/dd/的子頁(yè)面不能訪問(wèn)cookie2。

這是因?yàn)閏ookie只能讓其path路徑下的頁(yè)面訪問(wèn)。
瀏覽器會(huì)將domainpath都相同的cookie保存在一個(gè)文件里。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 今天webryan給team做了一個(gè)關(guān)于HTTP cookie的分享,從各個(gè)方面給大家介紹一下大家耳熟能詳?shù)腃oo...
    秒贊不是偶然閱讀 8,812評(píng)論 0 20
  • HTTP cookie(也稱為web cookie,網(wǎng)絡(luò)cookie,瀏覽器cookie或者簡(jiǎn)稱cookie)是網(wǎng)...
    留七七閱讀 18,376評(píng)論 2 71
  • 吼吼,今天吃了芝士的生蠔,嘴巴沾了一層白邊,似乎還加了些酸奶,混合性味道還是可以的。 和山東老鄉(xiāng)吃飯就是爽快啊,可...
    莎莎吖閱讀 336評(píng)論 0 0
  • 最初讀完梁鴻老師的《出梁莊記》時(shí),我不知道我該怎么表達(dá)我的那種悲愴而又無(wú)奈的思潮。但我知道,我需要對(duì)于梁莊出來(lái)的農(nóng)...
    谷雨666閱讀 459評(píng)論 4 8

友情鏈接更多精彩內(nèi)容