为什么我无法检索从AngularJS移动应用程序与服务器交换的cookie?

时间:2015-01-23 18:54:37

标签: javascript angularjs cordova cookies

我已经构建了一个基于Ionic,AngularJS和Cordova的混合移动应用程序,我想在$http请求之后检索从服务器发回的cookie,我不能!

通过浏览器调用后端服务器我可以看到,使用开发人员工具创建了一些cookie。 如何从AngularJS移动应用程序调用相同的服务器并检索这些cookie?

我正在尝试使用ngCookies模块:

<script src="lib/angular-cookies/angular-cookies.js"></script>

应用程序模块似乎配置正确:

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngCookies'])

和控制器一样:

angular.module('starter.controllers', [])

.controller('DashCtrl', ['$scope', '$http', '$cookieStore', function($scope, $http, $cookieStore) {

    $scope.signIn = function() {    
        $http.post(url, inputObject)
        .success(function (data, status, header) {
            console.log("======> Cookies: " + header('Set-Cookie'));
            console.log("Cookies are: " + JSON.stringify($cookieStore));
        })    
    };
}])

结果是第一个控制台日志只显示一个cookie(浏览器开发者工具显示更多),$cookieStore显示一个空对象!!

然而,如果我从我的应用程序再次调用它,那么获取cookie是因为它们以隐式方式发送回服务器。 那么,为什么$cookieStore没有显示出来?

问题是当应用程序停止时会删除与服务器隐式交换的cookie(因为大多数是会话cookie),所以我想在创建它们之后读取它们,将它存储在本地(例如{{1} })在应用程序停止时避免删除它,并在应用程序重新启动时将它们分配给后端请求。

我能这样做吗?我该怎么做?我需要帮助来检索Cookie,并将其再次添加到新的localStorage请求中。

非常感谢!!

塞吉

0 个答案:

没有答案