- ベストアンサー
Cookieの削除
基本認証でアクセス制限されたページにログアウトボタンをつけたいのですが、やり方がいまいちわかりません。 javascriptでCookieを削除すれば良いというのをどこかで見た事がある気がするのですが… 教えてください(>_<;;
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
cookieに保存してある認証のフォーマットがわかっているならば(恐らく name=xxxxxx という感じではないかと思う)、その中身を空にして( name= )保存しなおせば良いのではないかと思うのですが。 具体的には <input type=button onClick="fHoge('clear')"> function fHoge(mode) { if(mode == 'clear') { document.cookie = "name="; } } こんな感じで消せないですかね。 因みに以下のソースで試した見たところ、 クッキーの中身はこんな感じで表示されました。 name=hoge; Date=2003/02/13%2011%3A42%3A04; TopType=1; Prefecture=3 -----以下ソース----- <html> <head> <script language="JavaScript"> <!-- var strings; function put(){ document.cookie = "name=hoge"; } function get() { strings = document.cookie; document.hoge.textbox.value = strings; } //--> </script> </head> <body> <form name=hoge> <input type=text name=textbox> <input type=button value=GET onClick="get()"> <input type=button value=PUT onClick="put()"> </form> </body> </html>
その他の回答 (2)
- todo36
- ベストアンサー率58% (728/1234)
サーバーサイドなら出来そうだが(ヒント:401) クライアントサイドで出来るのかな?? >javascriptでCookieを削除すれば良い <form>タグによる認証のことでしょう。 Cookieを無効にしても基本認証は出来ますよね。 従って、基本認証とCookieは関係ないと思いますが..
お礼
そうなんですか… ありがとうございます!
cookieの有効期限を過去の時刻で設定して、cookieに書き込めば、その時点でcookieが削除されると思います。 一例を挙げます。 function cookiemonster(){ now = new Date(); now = now.toGMTString(); document.cookie="***=0; expires="+now; } この関数では、現在時刻を取得し、それをcookieの有効期限として利用されるGMT形式に直し、その値を有効期限に設定してcookieを書き出しています。 このとき、有効期限以外に何かしらの値をcookieに渡すようにしておかないとうまくいかないようですので、「***=0」と書いてある部分には、適当なキーを入れてください(こちらで一応動作確認をしたんですが、削除したいcookieに元から渡されているキーを指定すると良いようです)。 この関数を呼び出すと、その処理を行った時点でcookieの有効期限がその瞬間の時刻に設定されますので、処理が終わったときにはその時間は経過してしまっていますから、結果的に即時に破棄されるようになるはずです。 参考になれば幸いです。
お礼
ありがとうございます! 参考にさせていただきます!
お礼
ありがとうございます! 参考にさせていただきます!