0

私はJavaScriptを初めて使用するので、簡単な質問があります。名前=ユーザー名、値= id、有効期限=30日でJavaScriptを使用してCookieを設定したいと思います。いくつかの例を試しましたが、ブラウザでCookieを確認すると、名前:未定義のコンテンツ:未定義の有効期限:セッションの終了時に表示されます。

4

4 に答える 4

0

一例は次のとおりです。

function setCookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

var expires = new Date(new Date().getTime()+30*24*60*60*1000).toGMTString();
setCookie("username", "id", expires);
于 2012-05-05T21:12:06.163 に答える
0

jquery の世界にいる場合は、jquery cookie プラグインをチェックしてみてください。次のように言えます。

$.cookie('the_cookie', 'the_value', { 有効期限: 7, パス: '/' });

また、パラメーターを比較的簡単に設定できます。

Cookie を扱うときは、クエリを設定するドメインとパスを覚えておくことが重要です。クエリをパス: '/' およびドメイン: 'yourdomain.com' に設定することから始めるのがおそらく安全です (すべてのサブドメインで機能するように)。

于 2012-05-05T21:14:28.567 に答える
0

このようにしてみてください:

var now = new Date();
var expire = new Date(now.getTime() + (30 * 24 * 60 * 60 * 1000));
document.cookie = 'username=id' + ';expires=' + expire.toGMTString();
于 2012-05-05T21:14:33.383 に答える
0

ルート ドメインを使用して、サブドメイン間で Cookie にアクセスできることを確認してください (例: www.domain.com ではなく domain.com)。

すべてのブラウザーで同じ結果が表示されますか、それとも Internet Explorer だけの問題ですか?

私はこれらの 2 つの機能を問題なく頻繁に使用しています。

function n__readCookie(n__name)
{
    var n__nameEQ = n__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(n__nameEQ) == 0) 
        {  return c.substring(n__nameEQ.length,c.length);  }
    }
    return false;
}

function n__createCookie(n__name, n__value, n__days, n__domain)
{
    if (n__days)
    {
        var n__date = new Date();
        n__date.setTime(n__date.getTime()+(n__days*24*60*60*1000));
        var n__expires = "; expires="+n__date.toGMTString();
    }
    else
    {
        var n__expires = "";
    }
    document.cookie = n__name+"="+n__value+n__expires+"; path=/;domain=" + n__domain;
}
于 2012-05-05T22:14:49.507 に答える