【发布时间】:2015-01-01 02:31:12
【问题描述】:
我正在使用docCookies 对象在this 应用程序上设置cookie。
我正在测试的功能是这个:
displayWelcomeMessage = function(idElement){
var cookieName = 'username';
alert(docCookies.getItem(cookieName)); // NULL when cookie not set
var defaultName = "SweetAnon",
daysToExpire = 1,
username = docCookies.getItem(cookieName);
// Check if cookie was already set (user "logged")
if (username != null && username.trim() != "") {
displayUsername(idElement, username);
} else {
username = prompt("If you enter your name\nI'll try to remember you :)");
if (username != null && username.trim() != "") {
docCookies.setItem(cookieName, username, daysToExpire);
displayUsername(idElement, username);
} else {
displayUsername(idElement, defaultName);
}
}
alert(docCookies.getItem(cookieName)); // Username or 'SweetAnon'
};
这里有两个警报,它们在 Firefox v28 和 Chromium v33.0.1750.152 之间打印不同的结果。如果我将foobar 输入为username,我会得到以下结果:
- Firefox 打印
null,然后打印foobar。 - Chromium 打印
null,然后再次打印null。
我认为 Firefox 的行为是正确的。但是我应该怎么做才能让它在 Chromium 上运行呢?
【问题讨论】:
-
出于安全原因,假设用户使用密码登录您的网站,将用户名存储在 cookie 中是个坏主意。
-
我正在处理 1 个不会存储敏感数据的字符串。我想了解哪些 cookie 可以跨浏览器工作。
-
另一篇文章与此问题无关。我没有看到任何解决方案。
标签: javascript firefox cookies chromium