【问题标题】:Chrome ignores Set-Cookie response headers from XMLHttpRequest within extensionChrome 会忽略扩展中 XMLHttpRequest 的 Set-Cookie 响应标头
【发布时间】:2011-09-27 07:03:00
【问题描述】:

我在 Chrome 扩展程序中有一个后台页面,它向服务器发出请求。通过使用 Chrome 的调试工具,我可以看到返回了各种 Set-Cookie 标头。但是,后续请求不包含这些 cookie - Chrome 似乎将它们丢弃。这会导致向服务器发出的每个请求都计为一个新会话。

服务器端我设置了以下标头:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");

客户端我在 XMLHttpRequest 对象上设置了withCredentials = true

我在扩展清单的权限部分中也有服务器的地址。

我觉得我在这里非常接近解决方案 - 服务器正在响应正确的标头,但我无法完全弄清楚 Chrome 决定不存储 cookie 的原因。

我还需要在标头、XMLHttpRequest 对象或清单中设置其他内容吗?或者这是不可能的?

【问题讨论】:

  • 后续请求是否也返回 set-cookie 标头?
  • 是的,因为总会有一个新会话。我最终找到了解决方案并将其发布在下面,但这有点垃圾,因为我必须启用 3rd 方 cookie。

标签: javascript cookies google-chrome-extension xmlhttprequest setcookie


【解决方案1】:

我终于解决了这个问题。诀窍是将“cookies”权限放入扩展清单。这并不明显,因为 Chrome 扩展文档仅指出,如果您使用 chrome.cookies API,则需要它——我不是。

您还必须启用第三方 cookie。所以我可能需要一个完全不同的解决方案,因为我不想推荐启用第三方 cookie。

【讨论】:

    猜你喜欢
    • 2018-08-10
    • 2021-02-25
    • 2013-02-08
    • 2022-11-09
    • 1970-01-01
    • 2014-02-18
    • 2018-06-14
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多