【问题标题】:Setting Cookies via AJAX CORS Response and accessing them in document.cookies通过 AJAX CORS 响应设置 Cookie 并在 document.cookies 中访问它们
【发布时间】:2013-09-17 03:42:07
【问题描述】:

我在我的应用程序中设置了一个有效的 CORS。 在服务器端 REST 服务上,我在 ajax 响应中添加了 cookie 设置。这很好用,下一个对 CORS 服务的 Ajax 请求将与 cookie 一起发送。

现在我想在客户端从 javascript 获取/设置这些设置 cookie 的值。 document.cookies 返回一个空字符串即使它们是从浏览器随每个请求发送到其余服务的(这意味着它们存储在某个地方)。

我正在从本地主机运行服务和客户端,并且在 chrome 开发人员工具中的 cookie 部分下的资源选项卡中,这些发送的 cookie 不存在。

这些 cookie 存储在哪里以及如何访问它们?

【问题讨论】:

  • Javascript 无法读取发送到不同域的 cookie。

标签: javascript cookies cross-domain


【解决方案1】:

JavaScript(在网页上)用于读取 cookie 的唯一接口是 document.cookie,其中包含当前 HTML 文档的 cookie。

通过跨域 Ajax 请求设置的 Cookie 不适用于当前 HTML 文档,因此无法通过该接口使用。

XMLHttpRequest 确实有一个 getAllResponseHeaders() 方法,但 Set-Cookie 标头被浏览器抑制,因此您也无法访问它们,因为它们正在被设置。

【讨论】:

  • 我仍然对这些 XHR cookie 存储、策略以及是否有访问它们的方法很感兴趣。您是否碰巧知道有关这些特殊 cookie 的一些参考资料?
  • 它们没有什么特别之处。它们只是来自与页面本身不同的域的 cookie。
猜你喜欢
  • 2018-08-27
  • 1970-01-01
  • 2019-01-10
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2018-10-30
  • 1970-01-01
相关资源
最近更新 更多