访问$ http中的“Set-Cookies”标题

时间:2014-10-12 20:49:36

标签: javascript angularjs http-headers session-cookies

我是AngularJS的新手并且在简单的地方堆叠。

我运行简单的代码:

$http.post('/api/login/', {"user":"alexey","password":"alexey"})
     .success(function(data, status, headers, config){
         console.log(headers());
     } );

因此在控制台中只是:

  

对象{content-type:“application / json”}

但实际标题包含许多其他值(来自Chrome网络检查员):

HTTP/1.0 202 ACCEPTED
Date: Sun, 12 Oct 2014 17:39:33 GMT 
Server: WSGIServer/0.1 Python/2.7.5
Vary: Accept, Cookie 
X-Frame-Options: SAMEORIGIN
Content-Type: application/json 
Allow: POST, OPTIONS 
Set-Cookie: csrftoken=rNzbxI3QXBoyBS9XaMCdVHmZ32k8VN3c; expires=Sun, 11-Oct-2015 17:39:33 GMT; Max-Age=31449600; Path=/ 
Set-Cookie: sessionid=jxwsm9b5wuelpnr3a00tuwonq0i9sksk; expires=Sun, 26-Oct-2014 17:39:33 GMT; httponly; Max-Age=1209600; Path=/ 

那么,我怎样才能读取另一个标题,确切地说是来自响应的cookie?

1 个答案:

答案 0 :(得分:4)

出于安全原因,您无法访问XMLHttpRequest响应中的Set-Cookie标头。 AngularJS $http使用浏览器XMLHttpRequest实现。

4.7.4 The getAllResponseHeaders() method

  

返回响应中的所有标头,但这些标头除外   其字段名称为Set-Cookie或Set-Cookie2。