我多年来一直在使用相同的代码,到目前为止,每个浏览器的功能都很好:
$.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的错误吗?
答案 0 :(得分:0)
我们解决了一个类似的问题,并发现它实际上与服务人员有关。据我所知,这是Safari最新版本的Service Workers实现中的一个错误,该错误导致某些Cookie无法在私有模式下通过POST传递。目前,我们已禁用Service Worker,并且这些用户的站点功能已恢复正常。
不确定这是否是您的问题,但这听起来非常相似。希望这会有所帮助!