注销使用$http,然后重定向


AngularJS Logout using $http then redirect

对,所以我在这里有一点进退两难:)。

我正在做一个用angularjs和Laravel构建的项目。登录是用laravel完成的,我应该说,这超出了AngularJs的"作用域"。

所以在前端我没有看到那个页面。

我想做的是使用$http get方法来获取/注销(再次由laravel处理)。如果成功,将用户重定向到/login。

所以我想做的是:

$rootScope.logout = function () {
        $http.get('/logout', function (response) {
            console.log('redirect');
            $window.location.href('/login');
        });
    };

但由于某种原因似乎不起作用。建议吗?/logout清除所有会话等,这超出了我的"管辖范围":)

我也使用UI-router

这个location.replace应该可以解决你的问题。

$rootScope.logout = function () {
    $http.get('/logout', function (response) {
        console.log('redirect');
        var origin = $window.location.origin;
        $window.location.replace(origin + '/login');
    });
};

:如果您已经为注销页面定义了路由。

rootScope美元。登出= function () {

    $http.get('/logout', function (response) {
        console.log('redirect');
        $state.go('logout');
    });
};

但请记住,在这种情况下,您应该具有logout状态