【问题标题】:Samsung internet browser ignoring set-cookie on Ajax request三星互联网浏览器忽略 Ajax 请求上的设置 cookie
【发布时间】:2019-06-03 23:35:26
【问题描述】:

登录后,我设置了一些 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 的响应,并且似乎有效。更多挖掘...

【问题讨论】:

  • 您遇到的问题是什么版本的三星互联网?
  • 版本 9.2.00.70
  • 抱歉不确定,显然是三星互联网does supportSet-Cookie。但在第 5 版之前,Set-Cookie 的某些方面不受支持。

标签: ajax http cookies samsung-browser


【解决方案1】:

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

【讨论】:

  • 对于其他人,请确保将其直接添加到 init 对象本身,而不是标题中。这个错误导致我又进行了几个小时的调试。
【解决方案2】:

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

凭据的默认值为“same-origin”。

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

火狐 39-60

铬 42-67

Safari 10.1-11.1.2

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

这就是为什么明确设置凭据:“同源”对你和我都有效。

【讨论】:

    猜你喜欢
    • 2013-03-07
    • 1970-01-01
    • 2012-12-22
    • 2020-02-27
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多