0

所以我使用 CodeIgniter 框架通过下面的 javascript 注销用户:

//If logged in:
$('#logout').click(function() {
    $.ajax({url:'/auth/logout',
        success: function(data){
            $('#navigation').html(data);
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            document.write(errorThrown);
        }
    });
    location.reload(true);
});

只要我注释掉location.reload(true);,这段代码就成功调用了auth/logout函数,将用户注销,手动刷新页面就可以看到。但是,在重新加载活动的情况下,cookie 不会被删除并且用户保持登录状态。如何确保在重新加载页面之前删除 cookie?

4

1 回答 1

2

您需要将重新加载放在成功函数中,如下所示:

$.ajax({url:'/auth/logout',
    success: function(data){
        $('#navigation').html(data);
        location.reload(true);
    },
    error: function(jqXHR, textStatus, errorThrown)
    {
        document.write(errorThrown);
    }
});

您正在同步重新加载页面,而请求是异步的,这意味着重新加载是在 AJAX 完成之前发生的。

于 2012-06-30T08:04:26.773 回答