【问题标题】:GetCookie returns NULLGetCookie 返回 NULL
【发布时间】:2012-05-21 23:41:18
【问题描述】:

我尝试在 Javascript 和 Jquery 中设置和获取 Cookie,但这两种方法都返回 null。我的代码看起来正确,但我不知道为什么它对我不起作用。

cook.js

function setCookie(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=/";
}

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;
}

function deleteCookie(name) {
    setCookie(name,"",-1);
}

还有我的 html 页面:

fin.html:

<!DOCTYPE html>
<html>
    <head>
        <title>My Page</title> 
        <meta name="viewport" content="width=device-width, initial-scale=1"> 
        <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="jquery.cookie.js"></script>
        <script type="text/javascript" src="cook.js"></script>
    </head>
    <body>
        <a id="setcookie" href="fin2.html">SET COOKIE</a>
        <script>
            $("#setcookie").click(function() {
                // Using javascript function
                setCookie("mycookie", "itsvalue", 1) ;

                // Using jQuery plugin
                $.cookie('myCookie2': "myValue");
            });
        </script>
     </body>
</html>

fin2.html

<!DOCTYPE html>
<html>
    <head>
        <title>My Page</title> 
        <meta name="viewport" content="width=device-width, initial-scale=1"> 
        <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="jquery.cookie.js"></script>
        <script type="text/javascript" src="cook.js"></script>      
    </head>
    <body>
        <a id="get" href="#">YOO</a>
        <script>
            $("#get").click(function() {
                alert(getCookie("mycookie")) ;
                alert($.cookie('myCookie')) ;
            }) ;
        </script>
    </body>
</html>

但它使用 jquery 插件和 javscript 的函数返回 null。你对这个问题有什么想法吗?非常感谢:)

【问题讨论】:

  • 你能告诉我们当你删除你的cookie实现并只使用jquery cookie插件时会发生什么吗?
  • @sv_in : 仍然给我“null”
  • @Jashwant 如何启用它们?

标签: javascript jquery jquery-plugins cookies


【解决方案1】:

默认情况下,jQuery cookie 插件使用当前路径作为路径的默认值设置 cookie。这意味着 cookie 将仅在设置它的同一页面上可用。如果您希望 cookie 可以从您网站上的任何页面读取,请这样做。

$.cookie('the_cookie', 'the_value', { path: '/' });

另外,请注意我使用的是 , 而不是 :

【讨论】:

  • 好的,我更新了我的答案,你还需要设置路径参数。
  • 仍然返回 null。我刚刚读到我应该将我的文件放在本地服务器中,所以我已经将包含我的文件的文件夹移动到本地主机,它仍然返回“null”
【解决方案2】:

您是否尝试过在 Apache/IIS 中运行它?只有在从服务器运行时才会设置 Cookie。我根据您的代码整理了一个快速的 jsfiddle:http://jsfiddle.net/ZuCEC/

您应该能够设置、获取和删除 cookie,并随时查看值的变化。

希望对您有所帮助。

【讨论】:

  • 谢谢。它可以在 localhost 中使用 JS 函数,但不适用于 jquery 插件:-D 无论如何它都可以使用:-D
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 2020-06-19
  • 2011-10-15
相关资源
最近更新 更多