我正在尝试从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;
},
任何人都可以解释为什么我无法阅读它。
答案 0 :(得分:0)
$cookies.get
将读取为当前页面加载时设置的Cookie 。
如果您发出Ajax请求,则响应可能会更新存储在浏览器中的Cookie,但它不会更改历史记录以重写最初加载页面时设置的Cookie。
无法从Ajax响应中读取cookie。您甚至不能read the headers directly,因为Set-Cookie
和Set-Cookie2
明确无法访问客户端上的JavaScript。
那就是说,你不应该明确地读取cookie值。浏览器将透明地处理它的任何正常使用。您只需要为设置了cookie的URL发出另一个HTTP请求,它将包含在请求标头中。