My Flask站点将SameSite属性设置为Lax,并为SESSION_COOKIE的HTTPONLY。该网站设置了一个会话cookie,谷歌分析js设置了2个谷歌分析cookie。这两个都是第一方cookie。
前端在一个页面上链接bootstrap.js,这不会产生SameSite错误。此页面加载良好。这个网站上有一个单独的页面链接quilljs,它确实会产生SameSite错误。quilljs不加载。我知道谷歌Chrome 85的行为不允许第三方cookie。(另一个网站向我的网站提交任何请求,我的网站的第一方cookie不是顶级GET请求。(
这是否意味着在我尝试链接quilljs的js库后,它正在向我的页面发送一些非顶级GET请求?引导程序正在发送顶级GET请求,因此不会出错?顶级GET请求是否至少总是从库发送,或者浏览器是否可以在没有第三方到第一方的GET请求的情况下将库链接(插入?(到页面?
看来我有两个选择:
- 找到一个不发送cookie的所见即所得编辑器(Quill就是这样(
- 找到修改谷歌分析cookie的方法,将SameSite属性设置为None
请确认我已经掌握了正在发生的事情,我认为我的选择是正确的。
此外,如果你非常了解,你能告诉我为什么quilljs似乎只试图发送_ga(谷歌分析(cookie,而不是会话cookie吗。根据检查工具的"应用"部分,情况确实如此。localhost发送session和2ga cookie,quilljs只发送2ga cookie。
非常感谢您能分享您的真知灼见。
我不知道什么是quilljs,但我认为脚本没有加载的原因是因为cors而不是cookie。如果服务器在响应飞行前请求时没有包含正确的cors头,则浏览器会阻止cors请求。因此,基本上,当浏览器请求引导脚本时,引导服务器会发送正确的cors头(访问控制允许来源:…和其他(,而当它请求quiljs服务器时,则不会,这就是浏览器限制该连接的原因。您有两个选项为quilljs配置cors请求,或者找到另一个工具。更多关于cors的信息,你可以在这里阅读。