js 操作cookie cookie路徑問題


這里主要不是講這個方法,js寫cookie這種代碼網上一抓一把,在使用的時候遇到一點問題,就是寫的cookie 是有路徑問題的,在user目錄下可以使用跳轉到另外一個目錄下cookie,經過比較cookie與其他cookie的不同發現,用js寫的cookie在當前目錄下,不在根目錄下,這里可以用這個來控制訪問但是不符合現在的需求,在網上的某個地方看到一段代碼,可以解決這個問題,在這里貼出來,大家需要用的可以參考。代碼如下:

 1 Utils.writeCookie = function (value, name, key) {
 2 var Days = 2;
 3 var exp = new Date();
 4 exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
 5 if (key == null || key == "") {
 6     document.cookie = name + "=" + encodeURI(value) + ";expires=" + exp.toGMTString()+";path=/";
 7 }
 8 else {
 9     var nameValue = getCookie(name);
10     if (nameValue == "") {
11       document.cookie = name + "=" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/";
12     }
13     else {
14         var keyValue = getCookie(name, key);
15         if (keyValue != "") {
16             nameValue = nameValue.replace(key + "=" + keyValue, key + "=" +encodeURI ( value));
17             document.cookie = name + "=" + nameValue + ";expires=" + exp.toGMTString() + ";path=/";
18         }
19         else { 
20             document.cookie = name + "=" + nameValue + "&" + key + "=" + encodeURI(value) + ";expires=" + exp.toGMTString() + ";path=/";
21         }
22         } 
23     }
24 }

順帶把讀取cookie的也一起貼 了,引用了別人的代碼並非原創:

 1 Utils.readCookie = function(name,key) {
 2 var nameValue = "";
 3 var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
 4 if (arr = document.cookie.match(reg)) {
 5 nameValue = decodeURI(arr[2]);
 6 }
 7 if (key != null && key != "") {
 8 reg = new RegExp("(^| |&)" + key + "=([^(;|&|=)]*)(&|$)");
 9 if (arr = nameValue.match(reg)) {
10 alert( decodeURI (arr[2])); return decodeURI(arr[2]);
11 }
12 else return "";
13 }
14 else {
15 return nameValue;
16 }
17 }

 


免責聲明!

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



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