cookie的設置

cookie

是什麼:是一種用來在客戶端硬盤上存儲信息的手段。
爲什麼用?:可以用來存儲一些信息,實現一些特殊的效果。例如實現多少天內免登陸,或者存儲一些小數據。

cookie中的一些字段含義:

  1. key=value(鍵=值) 就是 cookie的一個鍵值對,一般是根據key拿到對應的value
    expires(過期時間)設置該cookie的過期時間,也是用 ‘;’ 來隔開,expires=GMT的時間字符串,例如要30天免登陸,就可以設置過期時間爲今天開始的30天之後的日期。如果不設置過期時間,默認瀏覽器關閉該cookie就消失了。
  2. path(路徑) cookie並不是在哪裏都能夠獲取到的。在網站中分爲很多目錄,可能很多目錄中不需要使用到cookie,所以可以設置cookie的路徑,這樣更加安全,避免任意目錄都能訪問到該cookie。通過 path=/E:javascript/test 這樣只能在該目錄下才能獲取到該cookie
  3. domain(域)默認該cookie在該cookie所在域名下才能夠訪問到,但是有時候a.chaijinsong.com需要訪問b.chaijinsong.com下的cookie,這時候就需要設置domain=chaijinsong.com。這樣兩個子域名都可以訪問該cookie
  4. secure(安全性) 默認secure是爲false的,即通過http協議來傳輸,但是如果 secure=true 的話,就只能t通過https來進行傳輸

怎麼用?:

document.cookie; //獲取cookie
"aaa=aaa;bbb=bbb" //類似於這種格式,但是並不是字符串。

//設置cookie,也可以用來進行刪除cookie,即將過期時間設置爲過去的時間,最後一個參數可以傳負數來實現
function setCookie(cname,cvalue,exdays){
  var d = new Date();
  d.setTime(d.getTime()+(exdays*24*60*60*1000));
  var expires = "expires="+d.toGMTString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}

setCookie('cjs','cjs',30); //設置 name爲cjs,value爲cjs的一個cookie,並且時間爲30天。
setCookie('cjs','cjs',-1); //讓該cookie過期,然後在document.cookie中就沒有cjs=cjs這個cookie了。但是其他key=value還存在

//獲取某個key的cookie
function getCookie(key){
    let arr1 = document.cookie.split(';');
    for(let i=0;i<arr1.length;i++){
        let arr2 = arr1[i].split('=');
        if(key.trim() === arr2[0].trim()){
            return (arr2[1]);
        }
    }
    return "";
}

getCookie('cjs'); //因爲上面已經將cjs這個cookie幹掉了,所以這裏得到爲 ""

注意:在google瀏覽器上本地html文件打開直接給cookie賦值是不允許的,但是firfox可以。所以想要測試的話先在本地開服務器,讓後使用本地ip訪問該文件。進行cookie的操作。

我的文章都會在gitbook上找到,覺得不錯的的可以看一下。順便給個star,哈哈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章