轉載自:
Cookies是一種能夠讓網站服務器把少量數據儲存到客戶端的硬盤或內存,或是從客戶端的硬盤讀取數據的一種技術。當你瀏覽某網站時,你硬盤上會生產一個非常小的文本文件,它可以記錄你的用戶ID、密碼、瀏覽過的網頁、停留的時間等信息。
當你再次來到該網站時,網站通過讀取Cookies,得知你的相關信息,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登錄等等。從本質上講,它可以看作是你的身份證。
使用傳統的Javascript來設置和獲取Cookies信息很麻煩,要寫上幾個函數來處理,幸運的是jQuery幫我們做了很多事,借助jQuery插件,我們可以輕松的創建、獲取和刪除Cookies。點擊這里下載cookies插件:http://plugins.jquery.com/project/Cookie
創建Cookie
使用jQuery設置cookie非常簡單。如,我們創建一個名為“example”,值為“foo”的cookie:
$.cookie("example", "foo");
要設置cookie的有效期,可以設置expires值,如設置cookie的過期時間為10天:
$.cookie("example", "foo",{expires:10});
設置cookie一小時后過期:
var cookietime = new Date();
cookietime.setTime(date.getTime() + (60 * 60 * 1000));//coockie保存一小時
$.cookie("example", "foo",{expires:cookietime});
要設置cookie的保存路徑,可以設置path值,如設置路徑為根目錄:
$.cookie("example", "foo",{path:"/"});
如果要設置路徑為/admin,則:
$.cookie("example", "foo",{path:"/admin"});
獲取cookie值
使用jQuery獲取cookie的值的方法那是相當的簡單,下面是彈出框顯示名為“example”的cookie的值:
alert($.cookie("example"));
刪除Cookie
使用jQuery刪除cookie,只需要將cookie的值為null,注意如果設置值為空的字符串時,並不能刪除cookie,只是將cookie值清空而已。
$.cookie("example",null);
cookie不同頁面訪問不到的問題
一般設置cookie的方法是setcookie(key, value, expire),參數分別的意思是建、值、過期時間,這里是大眾的默認設置方法,但是忽略了一個問題,setcookie還有path與domain可選參數,可以通過瀏覽器查看cookie的方法查看到path與domain
path的意思是存放的路徑,這個路徑決定訪問的權限。
比如你當前訪問服務器的路徑是/root/Index/Customer,則你只能訪問存放在path為/root/Index/Customer以及/root/Index/Customer下面所有目錄下的cookie,
就是你還可以訪問下級的,比如可以訪問/root/Index/Customer/Info/下的cookie,但是不能訪問上級的cookie,比如不能訪問/root/Index/
解決都可以訪問的方法是設置cookie的時候,顯式設置path,而且這個path的路徑最后是根目錄層,才可以訪問下級所有的cookie。
注意點:path的設置,最后不能缺少"
/"
對於不同頁面訪問相同的cookie,可以設置對應path值相同,例如均為"/",但是要注意好cookie的管理,
PS:如果不知道怎么設置path,可以先用瀏覽器查看cookie的path,然后再設置就可以了