【问题标题】:unable to update cookies using jquery in asp.net无法在 asp.net 中使用 jquery 更新 cookie
【发布时间】:2014-10-18 19:11:51
【问题描述】:

我有一个使用 cookie 更新搜索过滤结果的 asp.net 网页。我正在使用一个填充了不同类别的复选框列表,如体育、音乐、食物等,并使用 jquery on change 事件我使用 jquery 和 JavaScript 将索引和类别 ID 写入 cookie。它根据选中的复选框的数量构建类似于“1=26&2=14”的多值 cookie。然后在回发时,C# 代码读取 cookie 以更新搜索过滤器和搜索结果。这在 Chrome、Firefox 和 Safari 中运行良好。但由于某种原因,它在 IE 10 中不起作用。我无法弄清楚我做错了什么,感谢任何帮助。这是jquery事件:

    $('.cbl-eventSearchAdv-category input[type="checkbox"]').change(function () {
    var index = 1;
    var cookieString= "";
    $('.cbl-eventSearchAdv-category input[type="checkbox"]').not(':first').each(function () {
        if ($(this).is(':checked')) {
            cookieString += index + "=" + $(this).val() + "&";
            index++;
        }
    });
    var newCookieString = cookieString.slice(0, -1);
    document.cookie = "CategoriesSelectedEvents=" + newCookieString + "; expires=;  path=/";
});

【问题讨论】:

    标签: javascript jquery asp.net internet-explorer cookies


    【解决方案1】:

    似乎 IE 不允许空的expires 属性。根据documentation,如果未设置该属性,cookie 将持续到会话结束。所以我认为这应该按预期工作:

    document.cookie = "CategoriesSelectedEvents=" + newCookieString + "; path=/";
    

    我还建议使用jQuery.cookie 插件来跨浏览器使用cookie。

    【讨论】:

    • Ilya Luzyanin,感谢您的快速响应。我回去删除了所有的“expires=;”一切都在所有浏览器上运行。再次感谢。
    猜你喜欢
    • 2012-02-13
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多