Ajax AngularJs页面刷新时保留$http响应是否很热?

Ajax AngularJs页面刷新时保留$http响应是否很热?,ajax,angularjs,session,request,page-refresh,Ajax,Angularjs,Session,Request,Page Refresh,这个想法很简单。服务器有一个登录$HTTPPOST请求,用户经过身份验证,服务器返回有关用户的信息。我将这些信息放在一个服务中,我可以轻松地跨不同的控制器使用它,但是当我刷新页面时,数据丢失了。。。我必须再次登录才能从服务器接收数据。即使页面被刷新,有没有办法保持服务器的响应 这是执行$http请求的服务: app.factory('AuthService', function ($http) { var authService = {}; authService.login

这个想法很简单。服务器有一个登录$HTTPPOST请求,用户经过身份验证,服务器返回有关用户的信息。我将这些信息放在一个服务中,我可以轻松地跨不同的控制器使用它,但是当我刷新页面时,数据丢失了。。。我必须再次登录才能从服务器接收数据。即使页面被刷新,有没有办法保持服务器的响应

这是执行$http请求的服务:

app.factory('AuthService', function ($http) {

    var authService = {};

    authService.login = function (credentials) {

        var req = {
            method: 'POST',
            url: 'api/v1/login',
            data: { email: credentials.email, password: credentials.password }
        };

        return $http(req);
    };

    return authService;

});
这是使用服务的控制器:

app.controller('LoginCtrl', function ($scope, $http, AuthService, SessionService) {
    $scope.credentials = {
        email: '',
        password: '',
        remember: true
    };

    $scope.login = function (credentials) {

        var authentication = AuthService.login(credentials);
        authentication.success(function(response) {
            console.log(response);
            if (response.status.code="ok"){
                SessionService.set('auth', true);
            } else {
                alert("Couldn't perform Login!");
            }
        }).error(function (error) {
            console.log(error);
        });
    };
});

您可以使用$cookieStore将身份验证响应存储在会话cookie中(将一直有效,直到您在注销机制中显式使其无效或用户关闭浏览器窗口为止)。当你的应用程序初始化时,你需要重新读取cookie,以便将信息拉回来,并且只有当cookie不存在时,才将用户指向你的登录表单


您有没有研究过存储?您使用的服务器端是什么平台?我在服务器端使用Laravel@MichaelColemanI。我尽量不使用太多的模块,但我也会研究ngStoarge。到目前为止,我通过使用window.localStorage@MatthewGreenexcellent找到了一个解决方案,angular与laravel完美地结合在一起进行身份验证。很难用一个单一的答案来回答,因为答案有点复杂。我想如果你换一种方式做可能会更好,基本上我认为@Nicholas Smith的答案是正确的,但是Laravel有自己的认证机制,我强烈建议你使用它。所以有两个问题:1。您不使用cookies的具体原因是什么?2.请提供尽可能多的信息,你有什么设置到目前为止。特别是用于
api/v1/login
routeThanks的PHP,用于您的响应。在搜索web时,我偶然发现了本地存储?这不是比$cookieStore更好的解决方案吗?为什么(不)?本地存储可以工作,但存储的信息不会随请求自动发送,因此我认为您必须加载页面,然后运行一些javascript从本地存储提取信息,然后通过API调用将其发送到服务器以处理您的登录,vs仅在初始页面请求中提供它。