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

Is it possible to get the Set-Cookie value from an HTTP response header in JavaScript?

本文关键字:获取 Set-Cookie 响应 HTTP JavaScript 中从 是否      更新时间:2023-09-26

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

查看本例中的响应头,我看到它们包含

Set-Cookie: SMSESSION=LOGGEDOFF

似乎是一个相当可靠的测试。但是调用getAllResponseHeaders上的XMLHttpRequest对象传递给jQuery的error回调显然返回一个空字符串,我有麻烦找出任何其他方式获得头部信息。

这可能吗?

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

参见4.7.3 getResponseHeader()方法:

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

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

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

如果文档来自相同的域和路径,则使用该文档。饼干接口如果cookie设置了http-only属性,那么它是不可访问的