我正在建立一个需要注册和登录的网站。
注册后,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。
有什么想法?谢谢!
答案 0 :(得分:0)
发现解决方案是做一些内部/服务器端重组。目前还不清楚是什么原因造成了iPhone上的问题,但是,我能够绕过它。如果有其他人遇到这个问题,我会感到惊讶。