Cookie寫入之path的坑


問題

我在/page/index/index.html中向瀏覽器添加了一個useid的cookie(這里沒有指定path), 然后試着從/page/demo/demo.html中取值,發現無法取到,
通過開發者工具查看發現userid的path是/page/index/, 所以無法在page/demo/下面取到, 解決辦法就是在添加cookie時指定path為/page/, 這時page目錄下的所有頁面都可以獲取到userid

另外, path只能設置為絕對路徑

js操作cookie

添加cookie

/**
 * 添加cookie
 * @param {String} objName
 * @param {String} objValue
 * @param {Number} objHours
 */
function addCookie(objName,objValue,objHours){
	var str = objName + "=" + escape(objValue);
	
	if(objHours > 0){ // 如果不設定過期時間, 瀏覽器關閉時cookie會自動消失
		var date = new Date()
		var ms = objHours * 3600 * 1000;
		
		date.setTime(date.getTime() + ms);
		str += "; expires=" + date.toGMTString() + "; path=/page/;"; // 指定了cookie的path
	}
	
	document.cookie = str;
}

獲取cookie

/**
 * 獲取指定名稱的cookie值
 * @param {Object} objName
 */
function getCookie(objName) {
	var arrStr = document.cookie.split("; ");
	
	for (var i = 0; i < arrStr.length; i ++) {
		var temp = arrStr[i].split("=");
		
		if(temp[0] == objName) return unescape(temp[1]);
	}
}

刪除cookie

/**
 * 刪除指定名稱的cookie值
 * @param {Object} objName
 */
function delCookie(objName) {
	var exp = new Date();
	exp.setTime(exp.getTime() - 1);
	var cval = getCookie(objName);
	if (cval != null) {
		document.cookie = objName + "=" + cval + "; expires=" + exp.toGMTString() + "; path=/page/;"; // 指定了cookie的path
	}
}

參考文檔


免責聲明!

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



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