7

登录后,我设置了一些 cookie,它们适用于 FF、Chrome、Edge 等。但是由于某种原因,三星互联网浏览器似乎忽略了我的 cookie。

我启用了 cookie,它正在接受来自其他站点的 cookie,但我不知道为什么它不接受它们。我从我的服务器上获得了这个捕获:

HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: token=e1c137y8WEZItXVWExXBWRyQl9mxgxEvEMG++F6pzwart%2FAO0lTSA3tL48oeHclD%2FLQMdXWhgXvefpGR3QGMqwMe8cg%3D; HttpOnly; SameSite=Strict; Path=/; Expires=Wed, 08 May 2019 07:03:43 GMT
Set-Cookie: email=%2FwGLVu+6Yv5fYpSyZwRE8TIi0MlZZ6WaN+OaKusCF6pEyQjomquJmWwqSgrcHg2dcBeMBU%2Foeg%3D%3D; HttpOnly; SameSite=Strict; Path=/; Expires=Wed, 08 May 2019 07:03:43 GMT
Set-Cookie: testing=TESTETSETESET; HttpOnly
Server: Rocket
Content-Length: 56
Date: Wed, 01 May 2019 07:03:43 GMT

{ ... }

我尝试过更改 HttpOnly、SameSite、Secure 和域设置,但到目前为止还没有。

有任何想法吗?

三星互联网版 9.2.00.70

编辑:

似乎可能是因为 cookie 是从 Ajax 查询中设置的。我将其更改为来自普通形式 POST 的响应,并且似乎有效。更多挖掘...

4

2 回答 2

9

原来这是由于我的 Ajax 请求。一旦我添加credentials: "same-origin"到请求中,它就会按预期工作。

于 2019-05-01T12:01:23.613 回答
3

你的问题也帮助了我。我在三星浏览器 9.2 中有完全相同的错误。我正在使用github fetch实现,在文档中您可以看到:

凭据的默认值是“同源”。

但是,凭据的默认值并不总是相同的。以下版本的浏览器实现了旧版本的 fetch 规范,默认为“省略”:

火狐 39-60

铬 42-67

Safari 10.1-11.1.2

如果您针对这些浏览器,建议始终明确指定所有 fetch 请求的凭据:'same origin',而不是依赖默认值:

所以这就是为什么明确设置凭据:“same-origin”对你和我都有效。

于 2019-06-03T15:35:26.627 回答