web-dev-qa-db-fra.com

Comment définir un chemin lors de l'enregistrement d'une valeur de cookie en JavaScript?

J'enregistre des valeurs de cookie sur une page ASP. Je souhaite définir le chemin racine du cookie afin que celui-ci soit disponible sur toutes les pages.

Actuellement, le chemin du cookie est /v/abcfile/frontend/

Aidez-moi, s'il vous plaît.

43
user959128

simplement: document.cookie="name=value;path=/";

Il y a un point négatif à cela

Désormais, le cookie sera disponible pour tous les annuaires du domaine sur lequel il est est défini à partir de. Si le site Web n’est que l’un des nombreux sites de ce domaine, c’est Mieux vaut ne pas le faire parce que tout le monde aura également accès à vos informations de cookie.

81
Triptaminer

Pour le cookie d'accès dans l'application entière (use path = /):

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/"; 
}

Remarque:

Si vous définissez path=/,
Le cookie est maintenant disponible pour toute l'application/le domaine . Si vous ne spécifiez pas le chemin d'accès, alors le cookie actuel est enregistré uniquement pour la page actuelle, vous ne pouvez pas y accéder via une autre page.

Pour plus d'informations, lisez- http://www.quirksmode.org/js/cookies.html (partie domaine et chemin) 

Si vous utilisez des cookies dans jquery par plugin jquery-cookie :

$.cookie('name', 'value', { expires: 7, path: '/' });
//or
$.cookie('name', 'value', { path: '/' });
32
GrvTyagi

Voir https://developer.mozilla.org/en/DOM/document.cookie pour plus de documentation:

 setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {  
     if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/.test(sKey)) { return; }  
     var sExpires = "";  
     if (vEnd) {  
       switch (typeof vEnd) {  
         case "number": sExpires = "; max-age=" + vEnd; break;  
         case "string": sExpires = "; expires=" + vEnd; break;  
         case "object": if (vEnd.hasOwnProperty("toGMTString")) { sExpires = "; expires=" + vEnd.toGMTString(); } break;  
       }  
     }  
     document.cookie = escape(sKey) + "=" + escape(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : "");  
   }
4
Femi
document.cookie = "cookiename=Some Name; path=/";

Cela fera

3
TRIKONINFOSYSTEMS

CA aidera....

function setCookie(name,value,days) {
   var expires = "";
   if (days) {
       var date = new Date();
       date.setTime(date.getTime() + (days*24*60*60*1000));
       expires = "; expires=" + date.toUTCString();
   }
    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}

 function getCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
       var c = ca[i];
       while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return 
        c.substring(nameEQ.length,c.length);
  }
return null;
}
0
Omer