leer generate ejemplos creating crear cookie javascript jquery asp.net-mvc cookies

javascript - generate - jQuery $.cookie no es una función



js-cookie npm (6)

Debería agregar primero jquery.cookie.js luego agregar su js o jQuery donde esté usando esa función.

Cuando el navegador carga la página web primero carga este jquery.cookie.js y luego js o jQuery y ahora esa función está disponible para su uso

Estoy tratando de establecer una cookie usando jQuery:

$.cookie("testCookie", "hello"); alert($.cookie("testCookie"));

Pero cuando cargo mi página, recibo el error "$ .cookie no es una función". Esto es lo que sé:

  • He descargado el complemento de cookie jQuery here .
  • Estoy vinculando a jQuery y luego el plugin de cookies.
  • Tanto jQuery como jQuery.cookie se están cargando correctamente con 200 OK.

He analizado varias otras respuestas ( here y here entre otras), a las que la mayoría de la gente sugirió cambiar el nombre del archivo cookie.js. He cambiado el nombre de mi archivo de cookies "jquery.cookeee.js" pero los resultados son los mismos.

¿Alguna idea de lo que está pasando aquí?

Si ayuda, estoy creando una aplicación web en MVC 4.


La here de jQuery Cookie ha quedado en desuso, por lo que si obtiene el error:

$.cookie is not a function

debes actualizar a la nueva versión .

La API para la nueva versión también es diferente, en lugar de usar

$.cookie("yourCookieName");

Deberías usar

Cookies.get("yourCookieName");


Si alguien más tropieza con $.cookie is not a function problema de $.cookie is not a function , aquí están todos los posibles problemas / soluciones que he encontrado:

  • El complemento de cookies no se descargó. $.cookie no es una función jQuery estándar y el complemento debe descargarse here . Asegúrese de incluir la etiqueta <script> apropiada donde sea necesario (ver a continuación).
  • Al incluir el script de cookies, asegúrese de incluir jQuery FIRST y luego el complemento de cookies.

es decir, su cabeza podría contener:

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>

y entonces

<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>

  • En algunos casos, el cambio de nombre del archivo a algo que NO incluye ".cookie" ha solucionado este error, aparentemente debido a problemas en el servidor web. De forma predeterminada, el script descargado se titula "jquery.cookie.js" pero intenta cambiarle el nombre a algo así como "jquery_cookie.js" como se muestra arriba. Más detalles sobre este problema están here .
  • Por último (este era mi problema), asegúrese de no incluir jQuery más de una vez. Si es así, es posible que 1. jQuery se cargue correctamente 2. El complemento de cookies se carga correctamente 3. Finalmente, su segunda inclusión de jQuery sobrescribe la primera y destruye el complemento de cookies.

Para cualquiera que use proyectos ASP.Net MVC, tenga cuidado con las inclusiones predeterminadas del paquete javascript; a veces pueden ser difíciles de encontrar. Mi segunda inclusión de jQuery estaba dentro de una de mis páginas de diseño global bajo la línea @Scripts.Render("~/bundles/jquery") . Personalmente prefiero no renderizar paquetes y simplemente vincular a javascript según sea necesario.

Saludos y gracias especiales a Kevin B por la ayuda en este caso.


Verifique que haya incluido la secuencia de comandos en el encabezado y no en el pie de página. Particularmente en WordPress este no funcionó:

wp_register_script(''cookie'', get_template_directory_uri() . ''/js/jquery.cookie.js'', array(), false, true);

El último parámetro indica incluir el script en el pie de página y debe cambiarse a falso (predeterminado). La forma en que funcionó:

wp_register_script(''cookie'', get_template_directory_uri() . ''/js/jquery.cookie.js'');


Yo tuve este problema también. Descubrí que tenía una función $ (documento) .ready que incluía $ .cookie en una etiqueta de secuencia de comandos dentro del cuerpo mientras se cargaba la cookie js en la cabeza ABAJO jquery como se esperaba, resultó en que $ (documento) .estaba procesándose antes de la cookie el complemento podría terminar de cargarse.

Moví el script de carga del plugin de cookies en el cuerpo antes del script $ (document) .ready y el error desapareció: D


agregue este complemento de cookies para jquery.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>