Chrome Cookie不通过字体请求发送

cdmah0mi  于 2023-06-19  发布在  Go
关注(0)|答案(1)|浏览(139)

我在域名example.com上设置了cookie。当我在我的CSS中有这个并转到Web服务器时,此cookie包含在字体请求中

@font-face {
    font-family: Uniform;
    src: url("/font1.otf")
    format("opentype");
}

但是,如果我尝试加载了一个字体从不同的服务器托管在一个子域然后cookie不会得到发送虽然

@font-face {
    font-family: Uniform;
    src: url("https://asset.example.com/font1.otf")
    format("opentype");
}

但是,如果我在div上加载一个图像作为背景图像,cookie会被发送,尽管绝对没有问题。比如说,

.bug {
  background-image: url("https://asset.example.com/my-img.png");
  position: absolute;
  top: 30px;
  right: 30px;
  filter: invert(100%);
  max-width: 150px;
}

我在这件事上已经绕了好几个小时了。任何帮助都将是非常高兴的
我已经尝试将samesite设置为cookie上的所有三个选项,以及cookie是否安全。

fquxozlt

fquxozlt1#

当涉及到跨域请求时,Web字体的处理方式与其他类型的资源不同。
快速搜索一下,我找到了Cookie Request Header for Web Fonts,那里的一条评论提到了https://bugs.chromium.org/p/chromium/issues/detail?id=411338--在那里你会发现一条评论说:
CSS Fonts Module Level 3规定用户代理必须使用启用CORS的获取的“匿名”模式[1],这意味着无论服务器的Access-Control-Allow-Credentials头如何,都不会发送凭据。(Chrome 37的XMLHttpRequest更改与字体提取无关。
[1] http://www.w3.org/TR/css3-fonts/#font-fetching-requirements
因此,由于规范的关系,您在这里想要的只是 * 必须 * 不能 * 工作。

相关问题