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 に答える