1

同じ一貫した問題で Javascript を使用して Cookie を設定および読み取る 2 つの別々の方法を試しました。

新しいブラウザー セッションで初めてページにアクセスし、Cookie を設定するページを通過すると、最初のページで Cookie が正常に設定されていることが報告され、ユーザーは次のページにリダイレクトされます。次のページで Cookie を確認しますが、検出されず、最初のページに戻ります。最初のページをもう一度確認すると、魔法のように 2 番目のページで Cookie が適切に設定されていることが検出されます。

これはテストには問題ありませんが、エンドユーザーのエクスペリエンスは最悪です。私は、Quirksmode のコードと同様に、Cookie を処理するために Mozilla が推奨するコードを使用しました。どちらの方法でも同じ結果が得られます。後で参照するために Cookie に JSON を設定しています。

クッキーを設定するページ: /setCookie.php

Cookie を読み取るページ: /readCookie.php

Quirksmode コードを使用して Cookie を設定するコード:

createCookie('userJSON',JSON.stringify(dat));
window.location="/readCookie.php";

Quirksmode コードを使用して Cookie を読み取るコード:

if( !readCookie('userJSON') ){
    window.location="/setCookie.php";
}

Mozilla コードを使用して Cookie を設定するコード:

docCookies.setItem("userJSON",JSON.stringify(dat),null,"/");
window.location="/readCookie.php";

Mozilla コードを使用して Cookie を読み取るコード:

if( !docCookies.getItem('userJSON') ){
    window.location="/setCookie.php";
}

JSON は Cookie に保存され、jsonlint.com を使用して有効であることがテストされています。

{
    "first_name": "",
    "last_name": "",
    "email": "email@myDomain.test",
    "phone": "",
    "state": "CA",
    "barcode": "",
    "session_id": "1338398988873_4981",
    "guest_id": "",
    "event_id": "",
    "queue": "0",
    "SEND_MMS": false,
    "SEND_EMAIL": false,
    "location": "web"
}

私は Mozilla または Quirksmode のコードを変更していないので、それらのコードを含むページへのリンクがここに含まれています。

Mozilla Cookie: https://developer.mozilla.org/en/DOM/document.cookie

Quirksmode Cookie: http://www.quirksmode.org/js/cookies.html

コードからわかるように、パスは「/」に設定されているため、ドメイン内のすべてのページで有効になるはずです。この問題についての洞察をいただければ幸いです。

繰り返しますが、これは新しいブラウザー セッションで最初にページにアクセスしたときにのみ問題になります (ブラウザーを終了し、再度開いてページにアクセスすることで簡単に再現できます)。その後、同じブラウザー セッションからこれらのページを実行します。 setCookie.php ページに戻ることなく、これらのページをスムーズに流れます。

4

0 に答える 0