web-dev-qa-db-ja.com

名前でクッキーを削除しますか?

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クッキーを殺しますか?

129
Charlie

クッキーを削除するには、expiresの日付を過去の日付に設定します。これを行う関数はそうなるでしょう。

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

それからroundcube_sessauthという名前のクッキーを削除するためにちょうどしなさい。

delete_cookie('roundcube_sessauth');
169
user672118

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

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;';
}

パスを指定しないと、ブラウザは現在表示しているページに関連してCookieを設定します。そのため、別のページでCookieを削除しても、他のCookieは存在し続けます。

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

また、@ RobertTの回答で述べられているように、HttpOnlyクッキーはクライアントサイドのJavaScriptで削除することはできません。

211
emii

// 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.
7
Kishor Patil

それがRoundcubeバージョンの5月12日以降の状況かどうかはよくわかりませんが、現時点での答えはHttpOnlyとしてマークされているため、JavaScriptからroundcube_sessauth cookieを削除できないことです。そしてこれはそれがJSクライアントサイドコードからアクセスできないことを意味しますそしてサーバーサイドスクリプトによってまたは直接のユーザーアクションによって(統合されたデバッガまたはプラグインのようないくつかのブラウザメカニズムを通して)除去されることができるだけです。

6
RobertT

あなたはこの解決策を試すことができます

var d = new Date();
d.setTime(d.getTime());
var expires = "expires="+d.toUTCString();
document.cookie = 'COOKIE_NAME' + "=" + "" + ";domain=domain.com;path=/;expires=" + expires;
1
Nafees