好的,这是 411 - 我的 Global.asax.cs 文件中有以下事件处理程序:
private void Global_PostRequestHandlerExecute(object sender, EventArgs e)
{
if (/* logic that determines that this is an ajax call */)
{
// we want to set a cookie
Response.Cookies.Add(new HttpCookie("MyCookie", "true"));
}
}
该处理程序将在 Ajax 请求期间运行(由于我正在使用的 Ajax 框架),以及在其他时间 - if 语句的条件过滤掉非 Ajax 事件,并且工作正常(它不相关在这里,所以为了简洁起见,我没有包括它)。
我们可以说这很好 - cookie 已设置,我可以在客户端上读取它,并且一切都很好。
现在是让我发疯的部分。
这是我用来删除 cookie 的 JavaScript 函数:
function deleteCookie(name) {
var cookieDate = new Date();
cookieDate.setTime(cookieDate.getTime() - 1);
document.cookie = (name + "=; expires=" + cookieDate.toGMTString());
}
所以,当然,在设置 cookie 之后的某个时间点,我会像这样删除它:
deleteCookie("MyCookie");
只是,这不起作用;cookie 仍然存在。那么,有人知道为什么吗?