从浏览器获取 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 如何交互的更多信息:
我是 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 如何交互的更多信息: