【问题标题】:Deleting cookie through jQuery cookie script通过 jQuery cookie 脚本删除 cookie
【发布时间】:2012-11-26 05:43:12
【问题描述】:

我有一个包含 3 个 html 文件的网站:

语言选择:media/index.html

中文页面:media/en/index.html

中国网页:media/cn/index.html

网站文件:media/site/

当访问者在我的网站上选择一种语言时,我通过此脚本创建一个 cookie:

<script type="text/javascript">

    $(function () {

        var url = '';
        var en_page = 'en';
        var cn_page = 'cn';

        if ($.cookie('default_page') != null) {
            if (window.location.href != url + '/' + $.cookie('default_page')) {
                window.location.href = url + '/' + $.cookie('default_page');
            }
        }

        $('#enlink').click(function () {
            $.cookie('default_page', en_page, {expires: 999, path: '/', domain: 'mywebsite.com'});
        });

        $('#cnlink').click(function () {
            $.cookie('default_page', cn_page, {expires: 999, path: '/', domain: 'mywebsite.com'});
        });

    });

</script>

    ....
    ....

    <a href="cn/index.html" id="cnlink">CN</a>
    <br>
<a href="en/index.html" id="enlink">EN</a>

这成功创建了一个名为“default_page”的cookie,其值为“cn”或“en”,然后在后续访问时将用户重定向到mywebsite.com/cnmywebsite.com/en。这一切都很好。

但是,我无法删除此 cookie。每当用户单击链接以更改media/en/index.htmlmedia/cn/index.html 中的语言时,我都需要删除此cookie(即我的实际网站,而不是语言选择页面):

<script type="text/javascript">

    function deletecookie(){
        alert('delete');
        $.cookie('default_page', null, {path: '/', domain: 'mywebsite.com'});
    }

</script>

....
....

<a href="../index.html" onclick="deletecookie()">
    Change language
</a>

但这不起作用,当我点击“更改语言”时,它仍然将我重定向回同一页面(因为 cookie 仍然存在),所以我无法访问语言页面(media/index.html) .当我收到警告框时,正在调用该函数,但我检查了我的浏览器,即 Firefox,cookie mywebsite/default_page 仍然存在。

感谢您的帮助。

【问题讨论】:

  • 你试过插件本身提供的removeCookie功能吗? $.removeCookie('default_page', { path: '/' });

标签: javascript jquery select cookies


【解决方案1】:

尝试更改此设置

$.cookie('default_page', null, {path: '/', domain: 'mywebsite.com'});

到这里

$.cookie('default_page', null);

【讨论】:

  • 为什么会有不同?这是我从这里得到的解释:stackoverflow.com/a/7633502/1100019“这是对 cookie 的误解的问题。浏览器不仅识别键的 cookie 值,还比较选项路径和域。所以浏览器识别不同的值哪个 cookie 值该键是' name' 带有服务器设置选项(path='/'; domain='mydomain.com'),键是 'name' 没有选项。"
  • 可能不会,但这只是一个建议。
猜你喜欢
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
相关资源
最近更新 更多