不能在一个页面上编写cookie,Safari iOS

Can't write cookies on one page, Safari iOS

本文关键字:cookie iOS Safari 一个 不能      更新时间:2023-09-26

>我正在构建一个需要注册和登录的网站。

注册后,Cookie 将写入您的浏览器以验证您的会话。在登录期间,完全相同的 Cookie 将写入您的浏览器。我在注册和登录中使用完全相同的功能和技术来编写cookie。

问题是这样的:

移动设备上(至少在iOS版Safari中(,cookie不会在注册过程中写入,但是在登录过程中可以正常工作。(在桌面浏览器中,两者都可以正常工作(。

你应该知道:

移动网站不会重定向到不同的URL,也不会加载任何不同的javascript。它只是使用媒体查询(CSS(来改变CSS。

这是我尝试过的故障排除:

已验证我的"set_cookie"功能在移动设备上是否有效。将我的"阻止 Cookie"设置设置为"从不"。已验证每次调用set_cookie函数时是否通过日志记录document.cookie调用该函数(旧的/注销的 cookie 会记录到控制台,但不会写入新的 cookie(。在iPad的Safari上测试,就像一个魅力。

可能相关的事项:

不适用于iPhone的Safari的部分是尝试从站点根目录创建cookie,/但是,登录页面(在iPhone上确实有效(位于/login.html。两者是同一个域。此外,我已经验证服务器是否成功创建新用户并返回成功响应。这些请求是通过 AJAX 发出的,JSON 对象将返回给 javascript。

博士:

Cookie 不会从 iPhone 版 Safari 上的某个特定页面写入。此操作在其他任何地方都成功运行。相同的set_cookie功能正在全面使用,并且可以在iPhone版Safari上的其他页面上正常工作。移动版本位于同一域中,不会更改javascript,只会更改CSS。

有什么想法吗?谢谢!

发现这个问题的解决方案是进行一些内部/服务器端重组。目前还不清楚是什么导致了iPhone上的问题,但是,我能够绕过它。如果其他人遇到这个问题,我会感到惊讶。