1. ホーム
  2. javascript

[解決済み] 名前を指定してクッキーを削除しますか?

2022-04-21 02:36:53

質問

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

以下のようにすべきではないでしょうか。

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 cookie?

解決方法は?

正しいクッキーを削除していることを確認するために、クッキーが存在するパスを定義する必要があります。

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氏のコメントに基づいて編集。

正しいクッキーを識別するために、場合によっては Domain パラメータが必要です。

通常、次のように定義されます。 Domain=.yourdomain.com .

を配置する ドット をドメイン名の前に付けると、このクッキーはどのサブドメインにも存在することになります ( www もサブドメインとしてカウントされます)。

また、@RobertTさんの回答にもあるように HttpOnly のクッキーは、クライアント側のJavaScriptで削除することはできません。