我已经构建了一个基于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
请求中。
非常感谢!!
塞吉