无法从REST响应中读取Angular.js中的cookie

时间:2018-04-11 08:16:47

标签: javascript angularjs

我正在尝试从angualr JS中的REST Web服务响应中读取cookie。 我的申请是在服务下面打电话。 http://127.0.0.1:29070/webbrokerproxy/wbservice/secure/basket/wbrokere

这将返回响应头,如下所示。

接入控制允许凭证:真

Access-Control-Allow-Headers:Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers,content-disposition,Content-Transfer-Encoding ,X-WBAuthentication,缓存控制,附注,如果-Modified-Since的,REMOTE_USER

访问控制 - 允许 - 方法:POST,GET,HEAD,OPTIONS

访问控制允许来源:*

访问控制 - 暴露 - 接头:X-WBAuthentication,REMOTE_USER

访问控制 - 最大值 - 年龄:1728000

内容类型:应用/ JSON;字符集= UTF-8

日期:2018年4月11日星期三08:07:17 GMT 设置Cookie:AUTHUSER = wbrokere;路径= /

设置Cookie:_WL_AUTHCOOKIE_JSESSIONID = Jfh3J6GzwYBFHgcIBUNy;路径= /;安全;仅Http

设置Cookie:JSESSIONID = MxizvqlB2GtIXyfZ-HO4PbLH4cxId20pL4DyHw2XFfB58SLgwe0u 54246601;路径= /;仅Http

设置Cookie:JSESSIONID = PTxQhNCVnVmNQ9Z8yWbp3TTcbsQTT4l0W9hwz0jVl2SvQDYYMkLm -1045388091;!路径= /;仅Http

传送编码:分块 X-Powered-By:Servlet / 2.5 JSP / 2.1

从angualr js代码我试图读取authUser cookie,但我得到的值是未定义的。

  WBTokenGenerator().get({}, function(response, header) {

        alert("auth user " + $cookies.get('authUser'));
        sessionStorage.wbtoken = response.token;

    }, 

任何人都可以解释为什么我无法阅读它。

1 个答案:

答案 0 :(得分:0)

$cookies.get将读取为当前页面加载时设置的Cookie

如果您发出Ajax请求,则响应可能会更新存储在浏览器中的Cookie,但它不会更改历史记录以重写最初加载页面时设置的Cookie。

无法从Ajax响应中读取cookie。您甚至不能read the headers directly,因为Set-CookieSet-Cookie2明确无法访问客户端上的JavaScript。

那就是说,你不应该明确地读取cookie值。浏览器将透明地处理它的任何正常使用。您只需要为设置了cookie的URL发出另一个HTTP请求,它将包含在请求标头中。