2016-12-23 7 views
1

JavaScriptとCFの両方でアクセスしたいCookieに問題があります。私はJavaScriptを使ってクッキーを作成することができます:同じクッキー、ColdFusionとJavaScriptの値が異なる

document.cookie = 'SAVEDLISTINGS='+newc + ';path=/'; 

そして次のページにはCFが問題なく表示されます。ただし、同じJavaScriptを使用して新しい値でCookieを更新すると、CFは後続ページの変更を検出しません。デバッグ出力とCookieスコープをダンプすることにより、元の値を保持します。

JavaScriptは引き続き正しいCookie値を参照していますが、これはFirefox開発ツールを使用して確認できます。これは、クッキーファイルが正しく更新されていることを意味します。同じ名前の2つのCookieが表示されない:1つのみ、JavaScriptによって操作される値を持つ。

私は

document.cookie = 'SAVEDLISTINGS=; expires=Thu, 01 Jan 1970 00:00:00 UTC' + ';path=/'; 

を使用して、JavaScriptでクッキーを削除することができ、これは(以降のページに)だけでなくCFからクッキーを削除します。

実際にはCFCookieを使用してCookieを管理しているわけではありませんが、ColdFusion(httponly = no)で空​​白に設定してみました。これは何の違いもないようです。

+0

'私は'(HttpOnlyの=なしで)のColdFusionによって空白を設定して実験している - ので、通常のColdFusionはイエスのHttpOnly =を持っていますか? –

+2

http://stackoverflow.com/questions/1336126/does-every-web-request-send-the-browser-cookies Cookieが実際に送信されたことを確認できますか?たぶん何かがそれを無効にし、決してサーバーに送り返されることはありません。リクエストヘッダーに含める必要があります。 –

+0

デベロッパーツールを使用すると、発信リクエストを調べることができます。それ以降はjavascriptで設定し、それを後続のページに_send_することができます。ヘッダーに適切なCookieコードが設定されていますか? –

答えて

1

同じ正確なCookieを取得/設定していることを確認するために、Cookieのドメイン値を設定します。あなたはFirebugでその情報を見ることができます。以下の「testName」という名前の2つのCookieが、ドメインに基づいて別々のエンティティとして扱われる仕組みを以下に示します。これは重要です。異なるサイトは、互いに上書きすることなく同じCookie名を持つことができます。

enter image description here

関連する問題