2

我需要删除一个 cookie,然后进行重定向。但是,在处理重定向之前,cookie 不会被删除。问题是,如果在执行重定向时 cookie 仍然存在,则重定向会被拦截并发送到预期之外的页面。(奇怪,我知道;说来话长)

是否可以在重定向之前欺骗浏览器并强制删除 cookie?

jQuery('div#panelD').click(function(){
    document.cookie = 'sharedsession=; expires=Thu, 01 Jan 1970 00:00:01 GMT; Domain=.example.com; path=/';
    window.location.href = "www.example.com/x";
});
4

1 回答 1

0

我发现如果我对任何东西执行 AJAX 调用,它就有资格作为用于删除 cookie 的刷新。

var fakeAjax = new XMLHttpRequest();
var anything = fakeAjax.responseText;
fakeAjax.open("GET","ajax_info.txt",false);  // file doesn't actually exist
fakeAjax.send();

注意 Open 行中的“false”。必须将异步设置为 false(或其他一些延迟),以留出时间让新信息返回并删除 cookie。

更新: IE 不喜欢从不存在的文件中请求 responseText,因此只需完全删除该行。无论有没有它,其他浏览器似乎都很好。

于 2013-07-11T17:43:01.863 回答