2012-05-15 6 views
94

roundcube_sessauthという名前の特定のCookieを削除するにはどうすればよいですか?名前でクッキーを削除しますか?

は以下べきではない:

function del_cookie(name) { 
    document.cookie = 'roundcube_sessauth' + 
    '=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 
} 

そして:

<a href="javascript:del_cookie(name);">KILL</a> 

roundcube_sessauthクッキーを殺しますか?

+0

さて、あなたはそれを試してみたのですか? – Gabe

+1

'name'?そのポイントは何ですか?それとも、クッキー名を指定できるより汎用性の高いバージョンの二日酔いですか? – paxdiablo

+0

[JavascriptですべてのCookieを削除するにはどうすればいいですか?](http://stackoverflow.com/questions/595228/how-can-i-delete-all-cookies-with-javascript) – Gabe

答えて

121

クッキーセットを削除するには、expiresの日付を過去のものに変更します。これを行う関数は次のようになります。

var delete_cookie = function(name) { 
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
}; 

次に、roundcube_sessauthという名前のクッキーを削除するだけです。

delete_cookie('roundcube_sessauth'); 
+0

私はこのように感じています*動作しているはずです(動作するはずです:D!) Firefoxのページで設定したCookieが表示されています。「KILL」ボタンをクリックすると、Cookieが削除されません。どんな考え? – Charlie

+0

これはGoogle Chromeで動作します。 Firebugをインストールし、エラーがないかどうか確認してください。 –

+1

エラーなし、私はそれがちょうどRoundcubeのクッキーを削除していないと思います。おそらく他のクッキーを削除してしまうでしょう。 – Charlie

4

私は月'12からRoundcubeバージョンの状況だった場合、本当にわからないんだけど、現在のいずれかの答えは、あなたがそれをHttpOnlyとしてマークされているとして、JavaScriptのからroundcube_sessauthクッキーを削除することはできませんということです。これは、JSクライアント側のコードからアクセスできないことを意味し、サーバーサイドスクリプトまたは直接のユーザーアクション(統合されたデバッガやプラグインのようなブラウザ機構を介して)によってのみ削除できます。

143

あなたはパスを指定しない場合は、削除した場合ので、ブラウザは、あなたが現在いるページにクッキーを相対的に設定し、実際の1

function set_cookie(name, value) { 
    document.cookie = name +'='+ value +'; Path=/;'; 
} 
function delete_cookie(name) { 
    document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
} 

を削除することを確実にするために存在するクッキーのパスを定義する必要がありますクッキーは別のページにある間、他のクッキーはその存在を続けます。

@Evan Morrisonのコメントに基づいて編集してください。
場合によっては、正しいCookieを特定するために、Domainパラメータも必要であることに注意してください。
通常、ドメイン名の前のピリオドはDomain=.yourdomain.com
です。このクッキーはサブドメイン(wwwもサブドメインとみなされます)に存在する可能性があります。

また、@ RobertTの答えに記載されているように、クライアント側のJavaScriptではHttpOnlyのクッキーは削除できません。

+13

これは私にナッツを運転していた! Path = /を追加した後、私は削除することができました。ありがとう! – duyn9uyen

+4

ここで同じですが、私は 'path = /;'これが機能するには – bobbyrne01

+9

これは正解でなければなりません。ほとんどの場合、 'Path'がなければ動作しません。 – SuperMarco

3

// exMins = 0を渡すと、作成するとすぐに削除されます。私にとって

function setCookie(cname, cvalue, exMins) { 
    var d = new Date(); 
    d.setTime(d.getTime() + (exMins*60*1000)); 
    var expires = "expires="+d.toUTCString(); 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
} 

setCookie('cookieNameToDelete','',0) // this will delete the cookie. 
+0

exMinsはこの例では定義されていませんが、おそらくは曜日が – BHBH

+0

ええ.. exMinsに引数の名前を変更する代わりに.. thanks #BhBh –

1

setCookie('cookienameToDelete','',0) 作品

+0

これは質問に対する回答ではありません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](/レビュー/低品質の投稿/ 18694016) – abigperson

関連する問題