在 URL 栏中可见但在浏览器开发人员工具的“应用程序”选项卡中不可见的 Cookie

Cookies visible from URL bar but not visible in the Application tab of browser developer tool

如果您转到 didthanoskill.me 并尝试从 URL 栏访问 cookie,您可以清楚地看到“1 个正在使用的 Cookie”。在控制台的 document.cookie 上,返回空字符串。我认为 cookie 必须是 HttpOnly 所以我转到浏览器开发工具中的应用程序选项卡,也没有显示 cookie。奇怪!

知道为什么会这样吗?

与其将 cookie 的过期日期硬编码为 2019 年 4 月 27 日(这是一个过去的日期以及 cookie 的删除方式),您可以使用新日期并添加一些天数来确定状态应该持续多长时间(我用 7 作为示例)。

function onLoad() {
    var displayElement = document.getElementById("display");
    var resultDate;
    var randomNumber = getCookie("thanosNumber");
    
    if (!randomNumber) {
        resultDate = new Date();
        resultDate.setDate(resultDate.getDate()+7);
        randomNumber = Math.random();
        document.cookie = "thanosNumber=" + randomNumber + ";expires="+resultDate.toGMTString();
    } else {
        randomNumber = Number(randomNumber);
    }
    
    if (randomNumber < 0.5) {
        displayElement.textContent = "You were slain by Thanos, for the good of the Universe.";
    } else {
        displayElement.textContent = "You were spared by Thanos.";
    }
}