0
    login: function(user, success, error) {
        var s = new session(user);
        s.$login({}, function (u, putResponseHeaders) {
            if ($cookies.user) {
                console.log('cookie set' + $cookies.user);
                user = JSON.parse($cookies.user);
            }
            else
                console.log('no cookie set after login');

            console.log(u);

            $rootScope.user = user;
            console.log($rootScope.user.role);
            success(user);
        }, function () {
            error();
        });
    },

当用户单击登录时,服务器设置一个身份验证 cookie,上面的函数应该处理 cookie 并根据它的存在应该调用成功(用户)。问题是用户第一次点击登录“登录后没有设置 cookie”被调用并且没有看到 cookie,第二次用户点击它被授权。chrome可以在用户第一次点击时看到cookie设置,但是为什么angular js代码看不到呢?

4

1 回答 1

0

因为 cookie 尚未设置并且可用于 Javascript。

这是一种奇怪的做你正在做的事情的方式。你为什么关心饼干?不应该 login 以 JSON 形式返回用户对象,而您只需要使用它吗?cookie 应该只是用来将会话信息与后续请求一起传递......

于 2013-09-05T17:41:56.520 回答