【发布时间】: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