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

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

从这个案例中查看响应头文件,我看到它们包含了

 Set-Cookie: SMSESSION=LOGGEDOFF 

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

这可能吗?

如果您阅读W3 XHR规范,您将看到它们不允许您通过getAllResponseHeaders('Set-Cookie')调用访问set-cookie响应头。

请参见4.7.3 getResponseHeader()方法:

要点3: “如果标头是Set-Cookie或Set-Cookie2不区分大小写的匹配项,则返回null。”

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

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

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