是否可以从JavaScript中的HTTP响应头获取Set-Cookie值?

时间:2011-08-25 21:30:17

标签: javascript jquery ajax http-headers xmlhttprequest

我正在使用jQuery's ajax() method进行一些异步服务器调用,并希望捕获调用失败的情况,因为会话已超时。

在这种情况下查看响应标头,我发现它们包含

Set-Cookie: SMSESSION=LOGGEDOFF

这似乎是一个非常可靠的测试。但是,传递给jQuery的getAllResponseHeaders回调的XMLHttpRequest对象上调用error显然会返回一个空字符串,而我无法找到获取该标头信息的任何其他方法。

这可能吗?

2 个答案:

答案 0 :(得分:1)

如果您阅读W3 XHR规范,则会发现他们不允许您通过set-cookie电话访问getAllResponseHeaders('Set-Cookie')响应标头。

参见4.7.3 getResponseHeader()方法:

项目符号要点3:"如果标题是Set-Cookie或Set-Cookie2的不区分大小写的匹配项,则返回null。"

http://www.w3.org/TR/XMLHttpRequest/#the-getallresponseheaders%28%29-method

jfriend00也在上面的评论中留下了这个回复,但我认为这个问题可以使用合理的答案。

答案 1 :(得分:-2)

如果文档来自同一个域和路径,请使用document.cookie界面 如果cookie具有http-only属性集,则无法访问