JavaScript を使用して Cookie を作成しました。ログアウト時にクリアしたいもの。サイトはSSLで運営されています。以下は、Cookie の作成と削除の目的で使用した JS コードです。これはプレーンな Cookie であることに注意してください (非 HTTP、非セキュア、可能な限りシンプル)。以下は、Cookie を作成する関数で、Cookie を正常に作成します。この Cookie はセッション Cookie であり、他のすべての詳細は、この Cookie を作成するために使用されるパラメーターです。
login: function () {
"use strict";
var cookieKeys, cookieValues;
if (cookieExists(this.systemPolicyCookie)) {
cookieKeys = this.activeUserCookieName + '=';
cookieValues = 'Email=' + this.activeUserCookieValues.Email + '&';
cookieValues += 'UserId=' + this.activeUserCookieValues.UserId;
cookieKeys += encodeURIComponent(cookieValues) + cookieDelimiter;
cookieKeys += 'domain=' + this.activeUserCookieDomain + cookieDelimiter + cookiePath;
document.cookie = cookieKeys;
document.location.href = document.location.protocol + '//' + document.location.host + '/User/Landing/';
} else {
alert('System policies are missing, please login online.');
document.location.href = document.location.protocol + '//' + document.location.host;
}
}、
次のコード ブロックは、上記で作成した Cookie を削除する必要がありますが、これは機能しません。
logout: function () {
"use strict";
var cookies = cookieArray(),
name;
for (name in cookies) {
if (name != null && (this.systemPolicyCookie.toString()
.toLowerCase() !== name.toString()
.toLowerCase())) {
document.cookie = name + '="";-1; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT';
}
}
document.location.href = document.location.protocol + '//' + document.location.host;
}、
cookieArray() 関数は、次のようなすべての Cookie のリストを返します。
var cookieArray = function () {
"use strict";
var cookies = {},
counter,
split,
nameValue;
if (document.cookie && document.cookie !== '') {
split = document.cookie.split(';');
for (counter = 0; counter < split.length; counter++) {
nameValue = split[counter].split("=");
nameValue[0] = nameValue[0].replace(/^ /, '');
cookies[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
}
}
return cookies;
Cookie 削除コードを機能させるのを手伝ってもらえませんか? そうしないと、ブラウザを閉じる必要があります (悪い Ux)