Chrome会在扩展程序中忽略XMLHttpRequest中的Set-Cookie响应标头

时间:2011-07-02 13:41:59

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

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

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

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

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

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

我觉得我在这里非常接近解决方案 - 服务器正在使用正确的标题进行响应,但我无法理解为什么Chrome决定不存储Cookie。

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

1 个答案:

答案 0 :(得分:2)

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

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