2013-07-11 131 views
2

我需要删除一个cookie和然后做一个重定向。但是,在处理重定向之前,cookie不会被删除。问题是,如果cookie在执行重定向时仍然存在,则重定向会被拦截并发送到除预期的页面以外的页面。 (奇怪,我知道;长故事)Javascript删除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"; 
}); 

回答

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(或其他延迟),以便有时间让新信息返回并删除co​​okie。

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