繁体   English   中英

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

[英]Chrome ignores Set-Cookie response headers from XMLHttpRequest within extension

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

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

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

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

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

我觉得我在这里非常接近解决方案 - 服务器正在响应正确的标头,但我不太明白为什么 Chrome 决定不存储 cookies。

我还需要在标题中设置什么,XMLHttpRequest object 或清单? 或者这是不可能的?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM