javascript和jquery中cookie的設(shè)置方法
Cookie 是瀏覽器訪問服務(wù)器后,服務(wù)器傳給瀏覽器的一段數(shù)據(jù)。瀏覽器需要保存這段數(shù)據(jù),不會(huì)輕易刪除(保存在計(jì)算機(jī)中)。此后每次瀏覽器訪問該服務(wù)器,都必須帶上這段數(shù)據(jù)。這篇文章主要介紹了javascript和jquery中cookie的設(shè)置方法
cookie介紹
Cookie 的作用就是用于解決 "如何記錄客戶端的用戶信息":當(dāng)用戶訪問 web 頁面時(shí),他的名字可以記錄在 cookie 中。在用戶下一次訪問該頁面時(shí),可以在 cookie 中讀取用戶訪問記錄。
Cookie 以名/值對(duì)形式存儲(chǔ),示例:username=John Doe
當(dāng)瀏覽器從服務(wù)器上請(qǐng)求 web 頁面時(shí), 屬于該頁面的 cookie 會(huì)被添加到該請(qǐng)求中。服務(wù)端通過這種方式來獲取用戶的信息。
cookie 實(shí)際上是指小量信息,只能存儲(chǔ)4KB,是由 Web 服務(wù)器創(chuàng)建的,將信息存儲(chǔ)在用戶計(jì)算機(jī)上的文件,比如用戶登錄某個(gè)網(wǎng)站,瀏覽器會(huì)提示是否保存用戶名和密碼方便下次登錄,如果保存就是將信息保存在cookie當(dāng)中,Cookie 在計(jì)算機(jī)中是個(gè)存儲(chǔ)在瀏覽器目錄中的文本文件
注意:
谷歌和歐朋不支持本地存儲(chǔ)
? 如果沒有過期時(shí)間,一般瀏覽結(jié)束后銷毀cookie
? 由http明文傳遞,容易被竊用,盜取
? cookie每一次請(qǐng)求都會(huì)自動(dòng)添加到請(qǐng)求頭Request Headers,增加容量
JavaScript操作Cookie
JavaScript 可以使用 document.cookie 屬性來創(chuàng)建 、讀取、及刪除 cookie。
創(chuàng)建Cookie
document.cookie="username=John Doe";
您還可以為 cookie 添加一個(gè)過期時(shí)間(以 UTC 或 GMT 時(shí)間)。默認(rèn)情況下,cookie 在瀏覽器關(guān)閉時(shí)刪除:
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";
您可以使用 path 參數(shù)告訴瀏覽器 cookie 的路徑。默認(rèn)情況下,cookie 屬于當(dāng)前頁面。
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
讀取 Cookie
var x = document.cookie;
注:document.cookie 將以字符串的方式返回所有的 cookie,類型格式: cookie1=value; cookie2=value; cookie3=value;
修改 Cookie
在 JavaScript 中,修改 cookie 類似于創(chuàng)建 cookie,如下所示:
document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
舊的 cookie 將被覆蓋。
刪除 Cookie
刪除 cookie 非常簡單。您只需要設(shè)置 expires 參數(shù)為以前的時(shí)間即可,如下所示,設(shè)置為 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
注意,當(dāng)您刪除時(shí)不必指定 cookie 的值。
Cookie 字符串
document.cookie 屬性看起來像一個(gè)普通的文本字符串,其實(shí)它不是。
即使您在 document.cookie 中寫入一個(gè)完整的 cookie 字符串, 當(dāng)您重新讀取該 cookie 信息時(shí),cookie 信息是以名/值對(duì)的形式展示的。
如果您設(shè)置了新的 cookie,舊的 cookie 不會(huì)被覆蓋。 新 cookie 將添加到 document.cookie 中,所以如果您重新讀取document.cookie,您將獲得如下所示的數(shù)據(jù):cookie1=value; cookie2=value;
如果您需要查找一個(gè)指定 cookie 值,您必須創(chuàng)建一個(gè)JavaScript 函數(shù)在 cookie 字符串中查找 cookie 值。
操作cookie的函數(shù)封裝示例
//設(shè)置 cookie 值 //cookie 名、cookie 值、cookie過期時(shí)間 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; } //獲取 cookie 值 //使用分號(hào)來分割 document.cookie 字符串,并將分割后的字符串?dāng)?shù)組賦值給 ca 。 //循環(huán) ca 數(shù)組,然后讀取數(shù)組中的每個(gè)值,并去除前后空格。 //如果找到name,返回 cookie 的值。 function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name)==0) return c.substring(name.length,c.length); } return ""; }
jquery中cookie的設(shè)置方法
引入兩個(gè)js
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/jquery.cookie/1.4.1/jquery.cookie.js"></script>
2.設(shè)置cookie
$.cookie(“key”,“value”);
如: $.cookie(“love”,“唱跳rap籃球”); //設(shè)置了一個(gè)值為”唱跳rap籃球的cookie,cookie的名字是love
3.給cookie設(shè)置時(shí)長
$.cookie(“key”,“value”,{expires: 7}) ;設(shè)置為7天
4.設(shè)置cookie的域名
在不同網(wǎng)頁中是不能訪問同一個(gè)cookie的,所以可以設(shè)置cookie的域名,讓cookie在這個(gè)域名下都能訪問。
$.cookie(“key",“value”,{domain:“baidu”})
5.設(shè)置cookie的路徑
可以結(jié)合域名一起使用,在本地文件運(yùn)行也能使用。
$.cookie(“key”,“value”,{domain:“baidu”,path:“xxx/”}
path可以用過window.location.pathname 獲取,這個(gè)獲取到的是全路徑包括文件名
所以需要做個(gè)截取:
function getPath(){ var path = window.location.pathname; //獲取的是文件路徑全名包括路徑 var pos = path.lastIndexOf("/"); //去除文件名 path = path.substring(0, pos); return path; }
6.刪除cookie
$.removeCookie(‘key’,{path:"/"}) ;//刪除該路徑下所有名為key的cookie
$.removeCookie(“key”,null,{path:"/"}) 將key的值設(shè)置為空,實(shí)際上相當(dāng)于刪除
7.獲取cookie
$.cookie(“name”)
注意:
cookie的域名和路徑都很重要,如果沒有設(shè)置成一致,則會(huì)有不同域名下或者不同路徑下的同名cookie,為了避免這種情況,建議在設(shè)置cookie和刪除cookie的時(shí)候,配置路徑和域名。
到此這篇關(guān)于javascript和jquery中cookie的設(shè)置方法的文章就介紹到這了,更多相關(guān)javascript和jquery中cookie的設(shè)置方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)iframe動(dòng)態(tài)調(diào)整高度的代碼
iframe,尤其是不帶邊框的iframe因?yàn)槟芎途W(wǎng)頁無縫的結(jié)合從而不刷新頁面的情況下更新頁面的部分?jǐn)?shù)據(jù)成為可能,可是iframe的大小卻不像層那樣可以“伸縮自如”,所以帶來了使用上的麻煩,給iframe設(shè)置高度的時(shí)候多了也不好,少了更是不行,現(xiàn)在,讓我來告訴大家一種iframe動(dòng)態(tài)調(diào)整高度的方法,主要是以下JS函數(shù):2008-01-01javascript實(shí)現(xiàn)計(jì)時(shí)器的簡單方法
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)計(jì)時(shí)器的簡單方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02小程序?qū)崿F(xiàn)瀑布流動(dòng)態(tài)加載列表
這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)瀑布流動(dòng)態(tài)加載列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07詳解cesium實(shí)現(xiàn)大批量POI點(diǎn)位聚合渲染優(yōu)化方案
這篇文章主要為大家介紹了cesium實(shí)現(xiàn)大批量POI點(diǎn)位聚合渲染優(yōu)化方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05javascript數(shù)組的一些常用方法詳細(xì)匯總
在JavaScript開發(fā)中,數(shù)組的操作至關(guān)重要,本文詳細(xì)介紹了數(shù)組的常用方法,包括添加、刪除、查找、迭代、遍歷、排序和變換等功能,掌握這些方法,可以有效地處理和操作數(shù)組數(shù)據(jù),提高開發(fā)效率和代碼的可維護(hù)性,需要的朋友可以參考下2024-09-09JavaScript學(xué)習(xí)筆記之?dāng)?shù)組基本操作示例
這篇文章主要介紹了JavaScrip學(xué)習(xí)筆記之?dāng)?shù)組基本操作,結(jié)合實(shí)例形式分析了javascript數(shù)組的基本定義、添加、刪除、修改、連接、排序等操作技巧,需要的朋友可以參考下2019-01-01javascript實(shí)現(xiàn)label標(biāo)簽跳出循環(huán)操作
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)label標(biāo)簽跳出循環(huán)操作,感興趣的朋友可以參考一下2016-03-03