0

ドメインとそのドメインのサブドメインにCookieを設定するのに問題があります。ドメイン名を明かすことはできませんが、「domain.com」という名前を付けてコードを提供することはできます。

私は次のことを達成しようとしています:訪問者がdomain.comにアクセスし、特定のCookieが設定されています。彼がsubdomain.domain.comの特定のページに到達したら、それらのCookieを読み取る必要があります。

ユーザーがサブドメインページに直接アクセスした場合、Cookieは正しく設定され、すべて問題ありませんが、ユーザーがメインドメインページにアクセスした場合、Cookieは設定されません。手伝って頂けますか?

繰り返しますが、サブドメインがCookieを設定するが、メインドメインの訪問によってCookieが設定されない場合、以下のコードが機能することを再確認する必要があります(もちろん、スクリプトはメインドメインページ内にもあります)。私はfirebugとfirecookieでテストしました。

これは、Cookieを設定するための私のコードです。

function setCookie(c_name,value) {
    var now = new Date();
    var time = now.getTime();
    time += 3600 * 1000;
    now.setTime(time);
    var c_value=escape(value);
    document.cookie=c_name + "=" + c_value + '; path=/;domain=.domain.com';
}

そして、これはクッキー値を取得するための私のコードです:

function getCookie(c_name) {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++) {
        x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
        y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
        x=x.replace(/^\s+|\s+$/g,"");
        if (x==c_name) {
            return unescape(y);
        }
    }
}
4

2 に答える 2

0

私の側の新人の間違い。set cookie関数はプロセスの早い段階で呼び出され、Cookieをまったく設定しませんでした。

Jim Davisに感謝します。あなたの粘り強さにより、私は自分のコードをより詳しく見ることができました。

于 2013-03-15T08:31:07.833 に答える
0

トップレベルのユーザーはサブドメインを使用していますか? 「www」でも?

そうでない場合(そして正直なところ推測です)、問題は、Cookieがすべてのサブドメインで有効であるが、トップレベルドメインでは有効ではないことを指定している可能性があります。先行する「ドット」を取り出してみてください。

たとえば、ユーザーが「http://domain.com」にアクセスしている場合、「.domain.com」に設定された Cookie は返されないと思います。一方、「www.domain.com」にヒットしている場合、「www」は単なる別のサブドメインであり、これはすべて機能するはずです.

わかる?

于 2013-03-12T16:14:36.813 に答える