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

问题描述

如果您转到 didthanoskill.me 并尝试从 URL 栏中访问 c​​ookie,您可以清楚地看到“1 个 Cookie 正在使用中”。在控制台中的 // Manually create a new DataTable DataTable dtEmployees = new DataTable("Employee"); // Add columns dtEmployees.Columns.Add("ID",typeof(int)); dtEmployees.Columns.Add("Name",typeof(string)); dtEmployees.Columns.Add("Salary",typeof(int)); // Add rows to the table dtEmployees.Rows.Add(52,"Sally",29000); dtEmployees.Rows.Add(63,"Harry",22000); dtEmployees.Rows.Add(72,"Alain",23000); dtEmployees.Rows.Add(110,"Pete",24500); // Look for an employee... int index = 2; Console.WriteLine("(index of DaTarow({0}) should return {0})",index); DaTarow employee = dtEmployees.NewRow(); employee["ID"] = dtEmployees.Rows[index]["ID"]; employee["Name"] = dtEmployees.Rows[index]["Name"]; employee["Salary"] = dtEmployees.Rows[index]["Salary"]; int indexFound = dtEmployees.Rows.IndexOf(employee); if (indexFound != -1) Console.Write(" Employee has index {0}",indexFound); // Was expecting this... else Console.Write(" Employee not found in table..."); // ...but actually get this. Why?? 上,返回空字符串。我认为 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.";
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...