Cookie不会更改到期日期

时间:2012-03-12 11:57:37

标签: javascript asp.net cookies web

我正在尝试删除我网站使用的所有Cookie,但是从阅读中我无法做到这一点,所以我相信我唯一的选择就是将过期日期更改为过去并让浏览器完成工作。我现在有一个名为'CookieDisplay'的cookie。在asp.net的页面加载事件中,我有:

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    For Each key As String In Request.Cookies.AllKeys
        Dim cookie As New HttpCookie(key)
        If (Not Request.Cookies(cookie.Name.ToString) Is Nothing) Then

            cookie.Expires = DateTime.Now.AddDays(-1D)
            Response.Cookies.Add(cookie)
        End If

    Next

End Sub

此代码查找“CookieDisplay”的Cookie并更改到期日期。但是在客户端,我有javascript在页面加载事件后触发,具有以下内容。

  function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

function checkCookie() {


        var SavedData = getCookie("CookieDisplay");
    if (SavedData != null && SavedData == "true") {
        closeme();
    }
}

问题是cookie返回一个值,因此到期日期没有生效,因此cookie不会过期,因此仍会显示。可能是因为这个cookie是用javascript创建的,asp.net无法访问这个?我是否必须根据cookie的创建位置使来自javascript和asp.net的cookie过期?

由于

1 个答案:

答案 0 :(得分:1)

由HTTP请求创建的Javascript和Cookie创建的Cookie没有区别。检查域和路径,设置这些cookie。它们应该是一样的。