Cookie是HTTP協議中的一種機制,它允許我們在客戶端存儲一些信息,并在這些信息請求同一個域名下的不同頁面時訪問。在前后端分離的應用中,我們通常會使用JSON來傳遞數據,如何在Cookie中保存JSON呢?
// 設置Cookie,將JSON轉化為字符串 document.cookie = "userInfo=" + JSON.stringify({ name: "小明", age: 18, gender: "male" });
在這個例子中,我們將一個包含名字、年齡和性別的對象轉化為JSON字符串,并將其存儲在名為"userInfo"的Cookie中。下面是讀取這個Cookie的例子:
// 讀取Cookie function getCookie(name) { var cookieStr = document.cookie; var cookieArr = cookieStr.split("; "); for (var i = 0; i< cookieArr.length; i++) { var arr = cookieArr[i].split("="); if (arr[0] == name) { return JSON.parse(arr[1]); } } } var userInfo = getCookie("userInfo"); console.log(userInfo.name, userInfo.age, userInfo.gender);
在這個例子中,我們定義了一個根據Cookie名字獲取值的函數,這個函數首先讀取所有的Cookie,并將其按照"; "分割為一個數組,然后遍歷這個數組,將每個Cookie按照"="拆分成一個二元數組。當找到和指定名字相等的Cookie時,我們就將其值解析為一個對象并返回。
使用Cookie存儲JSON數據可以使我們在不同的頁面中訪問和更新這些數據,但是需要注意的是Cookie的大小限制。不同的瀏覽器和服務器都有不同的限制,一般來說,不要超過4KB比較保險。