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

问题描述 投票:6回答:2

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

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

Set-Cookie: SMSESSION=LOGGEDOFF

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

这可能吗?

javascript jquery ajax http-headers xmlhttprequest
2个回答
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也在上面的评论中留下了这个回复,但我认为这个问题可以使用合法的答案。


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.