jquery.cookie的path坑


在使用jquery.cookie設置cookie的時候,通常都是直接設置,沒有針對path,domain和expires等進行具體的設置,這會導致,同一個cookie的key對應多個value。

1、Cookie相關概念介紹

Path – 路徑

指定與cookie關聯的WEB頁。值可以是一個目錄,或者是一個路徑。

如果http://www.china.com/test/index.html 建立了一個cookie,那么在http://www.china.com/test/目錄里的所有頁面,以及該目錄下面任何子目錄里的頁面都可以訪問這個cookie。這就是說,在http://www.china.com/test/test2/test3 里的任何頁面都可以訪問http://www.china.com/test/index.html建立的cookie。

但是,如果http://www.china.com/test/ 需要訪問http://www.china.com/test/index.html設置的cookes,該怎么辦?這時,我們要把cookies的path屬性設置成“/”。在指定路徑的時候,凡是來自同一服務器,URL里有相同路徑的所有WEB頁面都可以共享cookies。

Domain – 域

指定關聯的WEB服務器或域。值是域名,比如www.china.com。這是對path路徑屬性的一個延伸。如果我們想讓 www.china.com能夠訪問bbs.china.com設置的cookies,該怎么辦? 我們可以把domain屬性設置成“china.com”,並把path屬性設置成“/”。

Secure – 安全

指定cookie的值通過網絡如何在用戶和WEB服務器之間傳遞。這個屬性的值或者是“secure”,或者為空。缺省情況下,該屬性為空,也就是使用不安全的HTTP連接傳遞數據。如果一個 cookie 標記為secure,那么,它與WEB服務器之間就通過HTTPS或者其它安全協議傳遞數據。不過,設置了secure屬性不代表其他人不能看到你機器本地保存的cookie。換句話說,把cookie設置為secure,只保證cookie與WEB服務器之間的數據傳輸過程加密,而保存在本地的 cookie文件並不加密。如果想讓本地cookie也加密,得自己加密數據。

Expires – 過期時間

指cookie的生命期,確切地說是過期日期。如果想讓cookie的存在期限超過當前瀏覽器的會話時間,就必須使用這個屬性。當過了到期日期時,瀏覽器會自動刪除cookie文件。

2、實戰jQuery.cookie

創建 cookie:

$.cookie('name', 'value');

創建有過期時間的cookie, 7 天之后過去:

$.cookie('name', 'value', { expires: 7 });

創建 有過期時間的cookie, 整個網站都可以用:

$.cookie('name', 'value', { expires: 7, path: '/' });

 

【項目地址】https://github.com/carhartl/jquery-cookie


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM