关于源码对过期时间的判断如下:
if (expires && expires != 0) {
switch (expires.constructor) {
case Number:
if (expires === Infinity || expires === -1) _expires = '; expires=Fri, 31 Dec 9999 23:59:59 GMT';
else _expires = '; max-age=' + expires;
break;
case String:
if (/^(?:\d+(y|m|d|h|min|s))$/i.test(expires)) {
// get capture number group
var _expireTime = expires.replace(/^(\d+)(?:y|m|d|h|min|s)$/i, '$1');
// get capture type group , to lower case
switch (expires.replace(/^(?:\d+)(y|m|d|h|min|s)$/i, '$1').toLowerCase()) {
// Frequency sorting
case 'm':
_expires = '; max-age=' + +_expireTime * 2592000;
break; // 60 * 60 * 24 * 30
case 'd':
_expires = '; max-age=' + +_expireTime * 86400;
break; // 60 * 60 * 24
case 'h':
_expires = '; max-age=' + +_expireTime * 3600;
break; // 60 * 60
case 'min':
_expires = '; max-age=' + +_expireTime * 60;
break; // 60
case 's':
_expires = '; max-age=' + _expireTime;
break;
case 'y':
_expires = '; max-age=' + +_expireTime * 31104000;
break; // 60 * 60 * 24 * 30 * 12
default:
new Error('unknown exception of "set operation"');
}
} else {
_expires = '; expires=' + expires;
}
break;
case Date:
_expires = '; expires=' + expires.toUTCString();
break;
}
}
其中有一段:
_expires = '; expires=' + expires;
只需要走到这里就可以使浏览器关闭清除 cookie,所以 expires 的值可以是任意的字符串(如:'a','ab')
如有侵权请邮件通知