« 携帯での「簡単ログイン」実装 Main w3mのUTF8表示で表示ズレ »

Firefoxの「クッキー保存の毎回確認」だとJavaScriptで保存できない

Firefoxで次のようにJavaScriptを使って単純にクッキーを保存しようとしても動作しない。

<script type="text/javascript">
setcookie('cookie_check', '12345');
</script>

設定を見直していたら、どうもFirefoxの履歴設定で「Cookieを保存する期間」を「毎回確認する」と設定しているのが原因らしい。

20140208191351

この場合に、ロケーションバーからサイトの情報を確認したり、詳細を表示させても特にクッキー関連の表示は出てこない。

20140208191510
20140208191545

それで、クッキーの保存設定を他の「サイトが保存した期間まで」と切り替えてみる:

20140208191604

と、クッキーの保存や値の書き換えも問題なく動作する。

ここで元の設定の「毎回確認する」に戻すと、先に保存していたクッキー値の読み出しはできるのだが、その値を変更したり新たに保存したりということはできない。

これに対して、phpで次のように保存を試してみる:

<?php
setcookie('check_php', '12345');

と、こちらだときちんと確認ダイアログが表示されて保存するサイト設定が有効になり、クッキーの保存も問題ない。

20140208191950
20140208192004
20140208192115

これでブラウザ側のサイト設定が「毎回確認する」→「許可」と切り替われば、それ以降はJavaScript側からもクッキーを保存することができるようになるようだ。

ブラウザのセキュリティ上の制限なのかもしれないが、JavaScriptでの動作時にブラウザの設定を切り替えるようにはなっていないらしい。困ったな。(一度は、php側で不要なクッキーの保存と削除を行なっておくとか??)

自前サイトの問題なのかと思って、他の方のページでも試したが、やはり保存期間を「毎回確認する」としていると(クッキーが保存できないため)「JavaScriptが無効」というような判定になってしまった。

20140208203022

Leave a comment

Your comment