【问题标题】:Access to 'Set-Cookies' header in $http访问 $http 中的“Set-Cookies”标头
【发布时间】:2014-12-07 10:01:55
【问题描述】:

我是 AngularJS 的新手,我在简单的地方堆放。

我运行简单的代码:

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

结果在控制台中:

对象{内容类型:“应用程序/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?

【问题讨论】:

    标签: javascript angularjs http-headers session-cookies


    【解决方案1】:

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

    4.7.4 The getAllResponseHeaders() method

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

    【讨论】:

    • 就是这样。我想为什么当我尝试做response.headers('Content-Type') 时,我得到了价值。但是 response.headers('Set-Cookie') 返回 null 或 undefined。是否有一个角度 1.6 的工作来获取 cookie。我主要是想捕获JSESSIONID。
    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 2020-12-30
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    相关资源
    最近更新 更多