14
  • 用户登录时由服务器设置会话

我想在我的angular前端检索这个值,但它说undefined

相关代码是

   $scope.logout = function () {
        console.log('session value', $cookieStore.get('session'));
    }

我的应用程序也配置为包括ngCookies

var app = angular.module('myApp', ['ngCookies']);

当我运行我的应用程序时,我看到

session value undefined 

但是,我可以看到会话Chrome Dev Tools

在此处输入图像描述

我错过了什么?

4

2 回答 2

27

我错过了什么?

服务器将 cookie 设置为 Session cookie(HttpOnly标志)。这意味着您无法在客户端访问此 cookie。客户端将在每次请求时将 cookie 发送到服务器,但客户端无法访问其值。这就是HttpOnlycookie 的定义。如果您希望能够在客户端访问此 cookie 值,您应该修改服务器端脚本,以便在设置 cookie 时不会将HttpOnly标志附加到它。显然,这带有相应的免责声明,即您可能在您的网站上打开的安全漏洞,具体取决于存储在此 cookie 中的目的和特定值。

于 2013-09-15T16:23:58.133 回答
1

更新

值得注意的是 $cookieStore 已被弃用,现在访问 cookie 应该使用 ngCookies(参见ngCookies)。

于 2016-11-08T20:56:02.017 回答