如何解决Cookie 在 URL 栏中可见,但在浏览器开发工具的应用程序选项卡中不可见
如果您转到 didthanoskill.me 并尝试从 URL 栏中访问 cookie,您可以清楚地看到“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.";
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。