如果我使用$http在我的服务器上发出请求,我会收到以下响应:
Request URL:http://www.test.tst/login Request Method:GET Status Code:200 OK Request Headersview source Accept:application/json,text/plain,*/* Accept-Encoding:gzip,deflate,sdch Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Cookie:JSESSIONID=349AD3AC797C6AB28121ADA1766FF4A2 Host:www.test.tst
我这样实现:
$scope.checkToken = function () { $http({method: 'GET',url: 'http://www.test.tst/login',params: {'action.code': 'LINK','linkparameter': $rootScope.token}}). success(function (data,status,headers,config) { console.log($cookieStore.get('JSESSIONID')); }). error(function (data,config) { $location.path("/login"); }); }
任何人都可以告诉我,为什么$cookieStore.get(‘JSESSIONID’)始终未定义?
cookie域与我的请求来自的域相同.
解决方法
您应该使用
$cookie service,而不是$cookieStore
$cookie提供对浏览器cookie的访问;而$cookieStore允许您存储和检索值.
$cookie提供对浏览器cookie的访问;而$cookieStore允许您存储和检索值.
这意味着访问服务器设置的cookie,您将使用$cookie.$cookieStore.get()将允许您使用$cookieStore.set()访问存储在应用程序中的值.只需在代码中用$cookie替换$cookieStore即可.