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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以从JavaScript中的HTTP响应头获取Set-Cookie值?相关的知识,希望对你有一定的参考价值。

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

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

Set-Cookie: SMSESSION=LOGGEDOFF

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

这可能吗?

答案

如果您阅读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也在上面的评论中留下了这个回复,但我认为这个问题可以使用合法的答案。

另一答案

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

以上是关于是否可以从JavaScript中的HTTP响应头获取Set-Cookie值?的主要内容,如果未能解决你的问题,请参考以下文章

从 HAR 文件中提取 HTTP 响应到文件系统

直接从 HTTP 响应打印

如何检查获取的响应是不是是javascript中的json对象

我可以从 http 模块 .get 响应中获取 nodejs 中的完整 http 响应文本吗?

当服务器仅从请求中读取标头时,Http客户端不会收到响应

headers哪个是响应时间