我想知道是否存在过滤cookie的现有技巧。 我只需要获取会话cookie并丢弃另一个。 使用Javascript读取cookie的常用方法是:
return data [key] as? String ?? "";
然而,这会打印所有cookie,我的目标是仅获取会话cookie。我知道不像"正常" cookie会话cookie有一个到期日期。
有没有人有代码示例来实现此会话cookie提取?
最佳, 亚历山大
答案 0 :(得分:4)
“会话cookie” 是普通的Cookie。它可能(或可能不)具有过期日期,但也没有任何东西阻止其他cookie具有过期日期。识别会话cookie的唯一可靠方法是,如果您知道其名称(当然这取决于网站,但如果这是您的网站则不是问题。)
此外,您无法通过Javascript了解Cookie的到期日期。
现在document.cookie
以分号分隔的字符串为您提供所有Cookie。您只需要在分号上分解它以检索键值对。所以这是一个示例代码,用于查找名称的cookie:
var getCookie = function(name) {
var cookies = document.cookie.split(';');
for(var i=0 ; i < cookies.length ; ++i) {
var pair = cookies[i].trim().split('=');
if(pair[0] == name)
return pair[1];
}
return null;
};
如果你不知道会话cookie的名字,那你就不走运了。期。您可以找到聪明的启发式方法来确定它是哪一个(基于名称和/或值的形式),但没有任何东西可以准确地告诉您100%置信度的所有网站哪个cookie是会话cookie,如果有的话一点都不。