【问题标题】:Cookie will not change expiration dateCookie 不会更改过期日期
【发布时间】:2012-03-12 20:36:00
【问题描述】:

我正在尝试删除我的网站使用的所有 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 过期?

谢谢

【问题讨论】:

    标签: javascript asp.net cookies web


    【解决方案1】:

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

    【讨论】:

    • 我已将 cookie.Domain = "localhost" 添加到服务器端代码,因为原始 cookie(由 javascript 创建)已将域作为 localhost。这没有任何区别。
    • 您可以在您的问题中添加javascript setCookie 函数吗?
    • function acceptClicked() { setCookie("CookieDisplay", true, 365); }
    • 抱歉,不确定如何在评论框中添加代码。无论如何,如果调用上述内容。它运行这个函数 setCookie(c_name, value, exdays) { var exdate = new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); document.cookie = c_name + "=" + c_value; }
    • 您可以编辑您的问题...检查一下,cookie 路径也相同
    猜你喜欢
    • 1970-01-01
    • 2022-10-04
    • 2019-05-27
    • 2018-07-09
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多