¿Cómo pongo / no tomar una cookie con jQuery? -- javascript campo con jquery campo con dom campo con cookies camp Relacionados El problema

How do I set/unset a cookie with jQuery?


1279
vote

problema

Español

¿Cómo configuro y no prestar atención a una cookie utilizando jQuery, por ejemplo, cree una cookie llamada test y configure el valor en 1 ?

Original en ingles

How do I set and unset a cookie using jQuery, for example create a cookie named test and set the value to 1?

</div
           

Lista de respuestas

1797
 
vote
vote
La mejor respuesta
 

actualización de abril de 2019

jquery no es necesario para la lectura / manipulación de cookies, así que no use la respuesta original a continuación.

Ir a https://github.com/js-cookie/js-cookie En su lugar, y use la biblioteca allí que no depende de JQery.

Ejemplos básicos:

  // Set a cookie Cookies.set('name', 'value');  // Read the cookie Cookies.get('name') => // => 'value'   

Ver los documentos en GitHub para más detalles.


antes de abril de 2019 (viejo)

ver el complemento:

https://github.com/carhartl/jquery-cookie

entonces puede hacer:

  $.cookie("test", 1);   

para eliminar:

  $.removeCookie("test");   

Además, para establecer un tiempo de espera de un cierto número de días (10 aquí) en la cookie:

  $.cookie("test", 1, { expires : 10 });   

Si se omite la opción de vencimiento, entonces la cookie se convierte en una cookie de sesión y se elimina cuando sale el navegador.

para cubrir todas las opciones:

  $.cookie("test", 1, {    expires : 10,           // Expires in 10 days     path    : '/',          // The value of the path attribute of the cookie                            // (Default: path of page that created the cookie).     domain  : 'jquery.com', // The value of the domain attribute of the cookie                            // (Default: domain of page that created the cookie).     secure  : true          // If set to true the secure attribute of the cookie                            // will be set and the cookie transmission will                            // require a secure protocol (defaults to false). });   

Para leer el valor de la cookie:

  var cookieValue = $.cookie("test");   

Es posible que desee especificar el parámetro de ruta si se creó la cookie en una ruta diferente a la actual:

  var cookieValue = $.cookie("test", { path: '/foo' });   

update (abril de 2015):

Como se indica en los comentarios a continuación, el equipo que trabajó en el complemento original ha eliminado la dependencia de jQuery en un nuevo proyecto ( https://github.com/js-cookie/js-cookie ) que tiene la misma funcionalidad y sintaxis general que la versión jQuery. Aparentemente, el plugin original no va a ningún lado.

 

Update April 2019

jQuery isn't needed for cookie reading/manipulation, so don't use the original answer below.

Go to https://github.com/js-cookie/js-cookie instead, and use the library there that doesn't depend on jQuery.

Basic examples:

// Set a cookie Cookies.set('name', 'value');  // Read the cookie Cookies.get('name') => // => 'value' 

See the docs on github for details.


Before April 2019 (old)

See the plugin:

https://github.com/carhartl/jquery-cookie

You can then do:

$.cookie("test", 1); 

To delete:

$.removeCookie("test"); 

Additionally, to set a timeout of a certain number of days (10 here) on the cookie:

$.cookie("test", 1, { expires : 10 }); 

If the expires option is omitted, then the cookie becomes a session cookie and is deleted when the browser exits.

To cover all the options:

$.cookie("test", 1, {    expires : 10,           // Expires in 10 days     path    : '/',          // The value of the path attribute of the cookie                            // (Default: path of page that created the cookie).     domain  : 'jquery.com', // The value of the domain attribute of the cookie                            // (Default: domain of page that created the cookie).     secure  : true          // If set to true the secure attribute of the cookie                            // will be set and the cookie transmission will                            // require a secure protocol (defaults to false). }); 

To read back the value of the cookie:

var cookieValue = $.cookie("test"); 

You may wish to specify the path parameter if the cookie was created on a different path to the current one:

var cookieValue = $.cookie("test", { path: '/foo' }); 

UPDATE (April 2015):

As stated in the comments below, the team that worked on the original plugin has removed the jQuery dependency in a new project (https://github.com/js-cookie/js-cookie) which has the same functionality and general syntax as the jQuery version. Apparently the original plugin isn't going anywhere though.

</div
 
 
         
         
434
 
vote

No hay necesidad de usar jQuery particularmente para manipular las cookies.

de quirksmode (incluidos los caracteres de escape)

  function createCookie(name, value, days) {     var expires;      if (days) {         var date = new Date();         date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));         expires = "; expires=" + date.toGMTString();     } else {         expires = "";     }     document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/"; }  function readCookie(name) {     var nameEQ = encodeURIComponent(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 decodeURIComponent(c.substring(nameEQ.length, c.length));     }     return null; }  function eraseCookie(name) {     createCookie(name, "", -1); }   

Eche un vistazo a

  • ¿Cómo elimino un nombre de clase existente y agregar una nueva con jQuery y cookies?
 

There is no need to use jQuery particularly to manipulate cookies.

From QuirksMode (including escaping characters)

function createCookie(name, value, days) {     var expires;      if (days) {         var date = new Date();         date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));         expires = "; expires=" + date.toGMTString();     } else {         expires = "";     }     document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/"; }  function readCookie(name) {     var nameEQ = encodeURIComponent(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 decodeURIComponent(c.substring(nameEQ.length, c.length));     }     return null; }  function eraseCookie(name) {     createCookie(name, "", -1); } 

Take a look at

  • How do I remove an existing class name and add a new one with jQuery and cookies?
</div
 
 
         
         
153
 
vote
  <script type="text/javascript">     function setCookie(key, value, expiry) {         var expires = new Date();         expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));         document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();     }      function getCookie(key) {         var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');         return keyValue ? keyValue[2] : null;     }      function eraseCookie(key) {         var keyValue = getCookie(key);         setCookie(key, keyValue, '-1');     }  </script>   

Puede configurar las cookies como

  setCookie('test','1','1'); //(key,value,expiry in days)   

Puede obtener las cookies como

  $.cookie("test", 1); 0  

y finalmente puedes borrar las cookies como esta

  $.cookie("test", 1); 111  

Espero que le ayude a alguien :)

Editar:

Si desea configurar la cookie en toda la ruta / página / directorio, configure el atributo de ruta a la cookie

  $.cookie("test", 1); 2  

gracias, Vicky

 
<script type="text/javascript">     function setCookie(key, value, expiry) {         var expires = new Date();         expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));         document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();     }      function getCookie(key) {         var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');         return keyValue ? keyValue[2] : null;     }      function eraseCookie(key) {         var keyValue = getCookie(key);         setCookie(key, keyValue, '-1');     }  </script> 

You can set the cookies as like

setCookie('test','1','1'); //(key,value,expiry in days) 

You can get the cookies as like

getCookie('test'); 

And finally you can erase the cookies like this one

eraseCookie('test'); 

Hope it will helps to someone :)

EDIT:

If you want to set the cookie to all the path/page/directory then set path attribute to the cookie

function setCookie(key, value, expiry) {         var expires = new Date();         expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));         document.cookie = key + '=' + value + ';path=/' + ';expires=' + expires.toUTCString(); } 

Thanks, vicky

</div
 
 
       
       
18
 
vote

Puede usar un complemento disponible aquí ...

https://plugins.jquery.com/cookie/

y luego escribir una cookie hacer $.cookie("test", 1); 3

para acceder a la cookie establecida $.cookie("test", 1); 4

 

You can use a plugin available here..

https://plugins.jquery.com/cookie/

and then to write a cookie do $.cookie("test", 1);

to access the set cookie do $.cookie("test");

</div
 
 
 
 
13
 
vote

Aquí está mi módulo global que uso -

  $.cookie("test", 1); 5  
 

Here is my global module I use -

var Cookie = {        Create: function (name, value, days) {         var expires = "";          if (days) {            var date = new Date();            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));            expires = "; expires=" + date.toGMTString();        }         document.cookie = name + "=" + value + expires + "; path=/";    },     Read: function (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;     },      Erase: function (name) {          Cookie.create(name, "", -1);     }  }; 
</div
 
 
10
 
vote

Asegúrate de no hacer algo así:

  $.cookie("test", 1); 6  

Luego, si la cookie no existe, el depurador devolverá un mensaje inútil como ".Cookie, no una función".

Siempre declarar primero, luego haz la división después de verificar la nula. Me gusta esto:

  $.cookie("test", 1); 7  
 

Make sure not to do something like this:

var a = $.cookie("cart").split(","); 

Then, if the cookie doesn't exist, the debugger will return some unhelpful message like ".cookie not a function".

Always declare first, then do the split after checking for null. Like this:

var a = $.cookie("cart"); if (a != null) {     var aa = a.split(","); 
</div
 
 
   
   
9
 
vote

Aquí es cómo configura la cookie con JavaScript:

ABAJO EL CÓDIGO se ha tomado de https://www.w3schools.com/js/js_cookies. ASP

  $.cookie("test", 1); 8  

Ahora puede obtener la cookie con la función inferior:

  $.cookie("test", 1); 9  

y finalmente así es como comprobar la cookie:

  $.removeCookie("test"); 0  

Si desea eliminar la cookie, simplemente configure el parámetro de caducidad a una fecha pasada:

  $.removeCookie("test"); 1  
 

Here is how you set the cookie with JavaScript:

below code has been taken from https://www.w3schools.com/js/js_cookies.asp

function setCookie(cname, cvalue, exdays) {     var d = new Date();     d.setTime(d.getTime() + (exdays*24*60*60*1000));     var expires = "expires="+ d.toUTCString();     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } 

now you can get the cookie with below function:

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

And finally this is how you check the cookie:

function checkCookie() {     var username = getCookie("username");     if (username != "") {         alert("Welcome again " + username);     } else {         username = prompt("Please enter your name:", "");         if (username != "" && username != null) {             setCookie("username", username, 365);         }     } } 

If you want to delete the cookie just set the expires parameter to a passed date:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; 
</div
 
 
7
 
vote

Un ejemplo simple de la cookie establecida en su navegador:

  <!doctype html> <html>     <head>         <meta charset="utf-8">         <title>jquery.cookie Test Suite</title>          <script src="jquery-1.9.0.min.js"></script>         <script src="jquery.cookie.js"></script>         <script src="JSON-js-master/json.js"></script>         <script src="JSON-js-master/json_parse.js"></script>         <script>             $(function() {                 if ($.cookie('cookieStore')) {                     var data=JSON.parse($.cookie("cookieStore"));                     $('#name').text(data[0]);                     $('#address').text(data[1]);               }                $('#submit').on('click', function(){                      var storeData = new Array();                     storeData[0] = $('#inputName').val();                     storeData[1] = $('#inputAddress').val();                      $.cookie("cookieStore", JSON.stringify(storeData));                     var data=JSON.parse($.cookie("cookieStore"));                     $('#name').text(data[0]);                     $('#address').text(data[1]);               });             });         </script>     </head>     <body>             <label for="inputName">Name</label>             <br />              <input type="text" id="inputName">             <br />                   <br />              <label for="inputAddress">Address</label>             <br />              <input type="text" id="inputAddress">             <br />                   <br />                <input type="submit" id="submit" value="Submit" />             <hr>                 <p id="name"></p>             <br />                   <p id="address"></p>             <br />             <hr>        </body> </html>   

Simple solo copie / pegue y use este código para configurar su cookie.

 

A simple example of set cookie in your browser:

<!doctype html> <html>     <head>         <meta charset="utf-8">         <title>jquery.cookie Test Suite</title>          <script src="jquery-1.9.0.min.js"></script>         <script src="jquery.cookie.js"></script>         <script src="JSON-js-master/json.js"></script>         <script src="JSON-js-master/json_parse.js"></script>         <script>             $(function() {                 if ($.cookie('cookieStore')) {                     var data=JSON.parse($.cookie("cookieStore"));                     $('#name').text(data[0]);                     $('#address').text(data[1]);               }                $('#submit').on('click', function(){                      var storeData = new Array();                     storeData[0] = $('#inputName').val();                     storeData[1] = $('#inputAddress').val();                      $.cookie("cookieStore", JSON.stringify(storeData));                     var data=JSON.parse($.cookie("cookieStore"));                     $('#name').text(data[0]);                     $('#address').text(data[1]);               });             });         </script>     </head>     <body>             <label for="inputName">Name</label>             <br />              <input type="text" id="inputName">             <br />                   <br />              <label for="inputAddress">Address</label>             <br />              <input type="text" id="inputAddress">             <br />                   <br />                <input type="submit" id="submit" value="Submit" />             <hr>                 <p id="name"></p>             <br />                   <p id="address"></p>             <br />             <hr>        </body> </html> 

Simple just copy/paste and use this code for set your cookie.

</div
 
 
     
     
5
 
vote

Puede usar la biblioteca en el sitio web de Mozilla aquí

Podrás establecer y obtener cookies como esta

  docCookies.setItem(name, value); docCookies.getItem(name);   

 

You can use the library on Mozilla website here

You'll be able to set and get cookies like this

docCookies.setItem(name, value); docCookies.getItem(name); 
</div
 
 
3
 
vote

Creo que Fresher nos dio buena manera, pero hay un error:

      <script type="text/javascript">         function setCookie(key, value) {             var expires = new Date();             expires.setTime(expires.getTime() + (value * 24 * 60 * 60 * 1000));             document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();         }          function getCookie(key) {             var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');             return keyValue ? keyValue[2] : null;         }    </script>   

Debe agregar "valor" cerca de GetTime (); De lo contrario, la cookie expirará de inmediato :)

 

I think Fresher gave us nice way, but there is a mistake:

    <script type="text/javascript">         function setCookie(key, value) {             var expires = new Date();             expires.setTime(expires.getTime() + (value * 24 * 60 * 60 * 1000));             document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();         }          function getCookie(key) {             var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');             return keyValue ? keyValue[2] : null;         }    </script> 

You should add "value" near getTime(); otherwise the cookie will expire immediately :)

</div
 
 
 
 
1
 
vote

Pensé La respuesta de Vignef Pichamani fue la más sencilla y limpia. Simplemente agregando su capacidad para establecer el número de días antes de la caducidad:

Editar: También agregó la opción 'Nunca caduca' si no se establece un número de día

          function setCookie(key, value, days) {             var expires = new Date();             if (days) {                 expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));                 document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();             } else {                 document.cookie = key + '=' + value + ';expires=Fri, 30 Dec 9999 23:59:59 GMT;';             }         }          function getCookie(key) {             var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');             return keyValue ? keyValue[2] : null;         }   

Configurar la cookie:

  setCookie('myData', 1, 30); // myData=1 for 30 days.  setCookie('myData', 1); // myData=1 'forever' (until the year 9999)    
 

I thought Vignesh Pichamani's answer was the simplest and cleanest. Just adding to his the ability to set the number of days before expiration:

EDIT: also added 'never expires' option if no day number is set

        function setCookie(key, value, days) {             var expires = new Date();             if (days) {                 expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));                 document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();             } else {                 document.cookie = key + '=' + value + ';expires=Fri, 30 Dec 9999 23:59:59 GMT;';             }         }          function getCookie(key) {             var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');             return keyValue ? keyValue[2] : null;         } 

Set the cookie:

setCookie('myData', 1, 30); // myData=1 for 30 days.  setCookie('myData', 1); // myData=1 'forever' (until the year 9999)  
</div
 
 
1
 
vote

Sé que hay muchas grandes respuestas. A menudo, solo necesito leer las cookies y no quiero crear gastos generales cargando bibliotecas adicionales o funciones de definición.

aquí es Cómo leer las cookies en una línea de JavaScript . Encontré la respuesta en Artículo de blog de Guilherme Rodrigues : < / p>

  ('; '+document.cookie).split('; '+key+'=').pop().split(';').shift()   

Esto lee la cookie llamada key , agradable, limpio y simple.

 

I know there are many great answers. Often, I only need to read cookies and I do not want to create overhead by loading additional libraries or defining functions.

Here is how to read cookies in one line of javascript. I found the answer in Guilherme Rodrigues' blog article:

('; '+document.cookie).split('; '+key+'=').pop().split(';').shift() 

This reads the cookie named key, nice, clean and simple.

</div
 
 
0
 
vote
  $.cookie("test", 1); //set cookie $.cookie("test"); //get cookie $.cookie('test', null); //delete cookie   
 
$.cookie("test", 1); //set cookie $.cookie("test"); //get cookie $.cookie('test', null); //delete cookie 
</div
 
 
0
 
vote

Pruebe (Doc aquí , por lo que fraguas No funciona, así que ejecute este )

  document.cookie = "test=1"             // set document.cookie = "test=1;max-age=0"   // unset   
 

Try (doc here, SO snippet not works so run this one)

document.cookie = "test=1"             // set document.cookie = "test=1;max-age=0"   // unset 
</div
 
 

Relacionados problema

9  Desde un punto de espera de arquitectura, ¿qué es una sesión de mejor enfoque [] o cookies cifradas?  ( From an architecture stand point what is a best approach session or encrypted ) 
Estamos tratando de decidir la mejor decisión de mantener el estado a través de nuestra aplicación web. Estamos inclinados a usar cookies encriptadas en el na...

23  ¿Cómo paso las galletas en una redirección de rizos?  ( How do i pass cookies on a curl redirect ) 
Imagina el siguiente escenario: Abro una conexión de rizo y pase un poco de XML-Logindata a través de POST. El servidor responde con una redirección de 302, d...

0  Rieles: Cómo no incluir algunos atributos de DB en el modelo  ( Rails how to not include some db attributes in model ) 
Mi tabla DB tiene una columna que puede contener una gran cantidad de datos. No quiero que estos datos formen parte del objeto de rieles correspondiente (mode...

1  ¿Cómo guardar imágenes favoritas después de cerrar sesión y seguirlas después de iniciar sesión?  ( How to save favorite images after logout and still see them after login ) 
problema: Entonces, cuando inicie sesión, un usuario puede ir al Browse.php para agregar imágenes a los favoritos.php, y las fotos aparecerán en esa págin...

0  Recuperando las cookies de httpresponse  ( Retrieving cookies from httpresponse ) 
Tengo una acción de controlador que llamo a través de AJAX en la que configuro una cookie como esta: Response.Cookies["Notifications"].Value = "false"; Res...

0  ¿Hay alguna manera de marcar galletas como Httponly en Pilones?  ( Is there a way to flag cookies as httponly in pylons ) 
No puedo encontrar ninguna documentación en la web sobre cómo hacerlo. Creo que es probable que sea posible enviar algún tipo de respuesta de encabezado HTTP ...

2  Configuración de una cookie en una llamada AJAX (PHP) y luego redirigiendo dentro de la devolución de llamada Ajax (JavaScript)  ( Setting a cookie in an ajax call php and then redirecting inside the ajax call ) 
He creado una página que establece una cookie en el clic de un botón (AJAX con PHP) y luego redirige a una página diferente (JavaScript). $.ajax({ url: ...

0  Pregunta de desarrollo del módulo de Drupal relacionado con las cookies y las redirecciones  ( Drupal module development question relating to cookies and redirects ) 
Ayuda por favor? Deseo desarrollar un módulo para hacer algo muy simple con PHP. Soy desafiado por la API de Drupal. Estoy usando la versión 6. METAL: 1) ...

1  Formsauthentication.cookiedomain propiedad  ( Formsauthentication cookiedomain property ) 
Q1 foriauthentication.cokiedomain propiedad Especifica el dominio para el cual esta cookie es válida. Anulando esta propiedad es útil si desea que la co...

1279  ¿Cómo pongo / no tomar una cookie con jQuery?  ( How do i set unset a cookie with jquery ) 
¿Cómo configuro y no prestar atención a una cookie utilizando jQuery, por ejemplo, cree una cookie llamada test y configure el valor en 1 ? ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos