从浏览器获取 HTTP cookie

Get HTTP cookie from browser

我是 AngularJS 用户,我想阻止保存从服务器发送的默认 cookie,因为它的有效期设置为 session。 或者只是获取此 cookie,获取身份验证值,并将其保存到我自己的 cookie 中,我将使用它来验证请求。 但是现在,我无法使用 AngularJS 或 JavaScript 获取此 cookie。我只能看到“__ngdebug”或“5984_recent”。 "AuthSession" cookie 被 HTTP 检查为真;

我尝试从 $http 观看 headers,但没有命名 "Set-Cookie",示例服务器应该 return:

HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Length: 43
Content-Type: application/json
Date: Mon, 03 Dec 2012 01:23:14 GMT
Server: CouchDB (Erlang/OTP)
Set-Cookie: AuthSession=cm9vdDo1MEJCRkYwMjq0LO0ylOIwShrgt8y-UkhI-c6BGw; Version=1; Path=/; HttpOnly

我的控制器看起来像这样:

ctr.controller("loginController", ["$scope", "$cookieStore", "$http",
  function($scope, $cookieStore, $http) {

    $scope.userCedential = {};

    $scope.login = function() {

        var headers = {};
        headers["Content-Type"] = "application/json";

        var res = $http.post("/_session", $scope.userCedential, headers);

        res.success(function(data, status, headers, config) {
                var s = headers("Set-Cookie");

            });

        res.error(function(data, status, headers, config) {

            });
    };

  }]);

你不能。

根据定义,无法从非 Http 接口访问 HttpOnly cookie。即 JavaScript

http://en.wikipedia.org/wiki/HTTP_cookie#HttpOnly_cookie

另请参阅此 SO 答案以获取有关 AJAX 和 HttpOnly 如何交互的更多信息: