如何使用Cookies
Cookies大家都知道,此篇文章說明如何使用Cookies,
基本上大家可以先把cookies想像成是記事本功能就可以了。
一、create cookie
例如要在cookie中寫入 username = brooke,則語法範例為
document.cookie = "username = brooke"
如下圖,先使用document.cookie列出cookie內所有內容,注意,標籤有分大小寫
由於我是使用.Net平台,
基於頁面避免被偽造安全措施(CSRF)所以可能會自動附加ckCsrfToken,
ckCsrfToken是唯讀的,開發者可以無視他。
當新增完 "username = brooke" 資料後,再使用document.cookie列出cookie內所有內容,
會看到cookie內有兩筆資料分別是ckCsrfToken與username,並且兩者用分號(;)隔開。
再新增一筆資料後,已存在的資料也不會被洗掉
二、read cookies
直接於console端下 document.cookie 指令就可以取得cookie所有內容,
另外也可以特別儲存在已宣告的變數內如
var x = document.cookie;
三、change cookies
可以針對特定一筆資料作修改
四、delete cookies
例如我要指定刪除某一筆資料時,則可以將該筆資料的值指定為空值,
並且設定到期時間小於現在,如下範例
document.cookie = "username=; expires=01 Feb 2017 00:00:00 UTC;"
如果在同一個網域之下怕誤刪相同名稱的資料,則可以特別指定路徑。
document.cookie = "username=; expires=01 Feb 2017 00:00:00 UTC; path=/;"
五、read specified cookies
document.cookie;指令只能夠一次讀取全部資料,而不行讀取某一筆資料,
目前只能撰寫javaScript程式來解決了。
方程式如下
<script> function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var collection = decodedCookie.split(";"); for (var i = 0; i < collection.length; i++) { var c = collection[i]; //當第n個集合的第一個字元is空白時,則從第二個字元開始取 while (c.charAt(0) == ' ') { c = c.substring(1); } //如果name標籤被找到is該集合裡開頭第零個位址時,則表示被找到 //將會回傳該集合中的值(不含標籤) if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } </script>
執行畫面