设置cookie不能使用javascript或jquery

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置cookie不能使用javascript或jquery相关的知识,希望对你有一定的参考价值。

我的问题是,通过点击按钮设置cookie是行不通的。我已经用3种不同的方式对它进行了测试。

html

<!DOCTYPE html>
<html dir="ltr">
    <head> [...]
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script>
        <script src="/cookies/js/jquery.cookie.js"></script>
        <script>
            document.getElementById('btnSetCookie').onclick = function () {
                $.cookie('cookie-1', 'true');
                alert('You have set the cookie: ' + jQuery.cookie('cookie-1'));
            });
            $(function () {
                $("#btnSetCookie").click(function () {
                    jQuery.cookie('cookie-2', 'true');
                    alert('You have set the cookie: ' + jQuery.cookie('cookie-2'));
                });
            });
            $(document).ready(function () {
                $("#btnSetCookie").on('click', function () {
                    $.cookie('cookie-3', 'true');
                    alert('You have set the cookie: ' + jQuery.cookie('cookie-3'));
                });
            });
        </script>
    </head>
    <body> [...]
        <button id="btnSetCookie">set cookie</button> [...]
    </body>
</html>

知道我的错误是什么?

答案

这不适合您的原因是,如果您没有在服务器上运行,则无法设置cookie。换句话说,如果您使用file://在本地浏览器中提供文件,则它将无法正常工作。

你的第二个和第三个选项运行正常。我会清理它们并一致地使用$或jQuery,但是在服务器上运行时都可以工作。

这是你的代码工作的demo

$(document).ready(function () {
  $("#btnSetCookie").on('click', function () {
    $.cookie('cookie-3', 'true');
    alert('You have set the cookie: ' + $.cookie('cookie-3'));
  });
});

您还可以考虑使用更新版本的jQuery,以及您正在使用的插件(不再维护您正在使用的版本)。实际上,该插件的较新版本根本不再依赖于jQuery。

另一答案
function addCookie(field, value)
{
      document.cookie = (document.cookie === "") ? field + "=" + value : document.cookie + ";" + field + "=" + value;
}

以上是关于设置cookie不能使用javascript或jquery的主要内容,如果未能解决你的问题,请参考以下文章

用javascript能不能提取httponly属性的cookie

使用 PHP 或 JavaScript 在多个域上设置 cookie

jq插件—缓存jquery.cookie.js

原生JS 的cookie和jq的cookie,

jq记住密码

前端面试题之一JAVASCRIPT(理论类)