【问题标题】:Safari on iOS 11.4 not sending cookies on POST requestsiOS 11.4 上的 Safari 不在 POST 请求中发送 cookie
【发布时间】:2018-06-21 05:22:56
【问题描述】:

多年来,我一直在使用相同的代码,到目前为止,所有浏览器都运行良好:

$.ajax({
    url: '/test.php',
    data: parameters,
    dataType: 'html',
    type: 'post'
})

但是,自从我的用户开始升级到 iOS 11.4 后,那些使用 Safari 私人模式的用户遇到了与我的网站“断开连接”的问题。

这是因为 ajax POST 请求显然没有发送任何 Cookie。作为该 POST 请求的一部分创建一个全新的会话(创建新的 cookie 等)。

但是,这不会影响 GET 请求本身的任何内容。即使新的 cookie 被设置为 ajax POST 请求的一部分,它们仍然使用相同的 cookie(因此也是相同的会话)。就像那些 ajax POST 请求被“沙盒化”一样,不会影响其他任何东西。

有什么想法吗?这是 iOS 11.4 上 Safari 的错误吗?

【问题讨论】:

    标签: ajax post cookies safari mobile-safari


    【解决方案1】:

    我们解决了一个类似的问题,发现它实际上与 Service Worker 有关。据我所知,这是最新版本的 Safari 服务工作者实现中的一个错误,导致某些 cookie 无法在私有模式下通过 POST 传递。目前,我们已禁用 Service Worker,并且这些用户的站点功能已恢复正常。

    不确定这是否是您的问题,但听起来非常相似。希望这会有所帮助!

    【讨论】:

    • 是的。我已经报告了这个错误,显然他们已经知道并修复了。谁知道他们什么时候才能最终发布这个......这是一个荒谬的错误,更荒谬的是他们需要这么长时间才能将其部署给用户......bugs.webkit.org/show_bug.cgi?id=186617
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2018-06-18
    • 1970-01-01
    • 2011-04-12
    • 2016-06-14
    相关资源
    最近更新 更多