1

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 プラグインと javascript の関数を使用すると null が返されます。この問題について何か考えはありますか? 本当にありがとうございました :)

4

2 に答える 2

1

デフォルトでは、jQuery cookieプラグインは、現在のパスをパスのデフォルト値として使用してCookieを設定します。これは、Cookieが設定されたのと同じページでのみ利用できることを意味します。サイトのどのページからでもCookieを読み取れるようにする場合は、次のようにします。

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

,また、私はではなくを使用していることに注意してください:

于 2012-05-21T15:03:26.570 に答える
1

Have you tried running this in Apache/IIS? Cookies will only be set when run from a server. I've put together a quick jsfiddle based on your code at: http://jsfiddle.net/ZuCEC/

You should be able to set, get and delete cookies and see the value changing as you go.

Hope that helps.

于 2012-05-21T15:41:18.820 に答える