无法在一个页面上编写cookie,Safari iOS

时间:2013-09-30 22:07:17

标签: javascript iphone ios mobile cookies

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

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

问题在于:

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

你应该知道:

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

以下是我尝试过的问题排查:

已验证我的“set_cookie”功能适用于移动设备。将我的“块cookie”设置为“从不”。验证每次调用函数时都记录set_cookie来调用document.cookie函数(旧的/注销的cookie记录到控制台,但新的cookie不会被写入)。在Safari for iPad上测试,就像一个魅力。

可能相关的事情:

在Safari for iPhone上不起作用的部分正在尝试从网站根目录/创建Cookie,但是,登录页面(它在iPhone上工作的位置)位于/login.html 。两者都是相同的域名。此外,我已验证服务器已成功创建新用户并返回成功响应。这些请求是通过AJAX发出的,JSON对象返回到javascript。

TL; DR:

Cookie不会在Safari for iPhone上的某个特定页面上写入。此操作在其他地方成功运行。整个主板使用相同的set_cookie功能,并在Safari for iPhone上的其他页面上正常工作。移动版本在同一个域上,不会改变javascript,只会更改CSS。

有什么想法?谢谢!

1 个答案:

答案 0 :(得分:0)

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