Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';不要在一页上写cookies,Safari iOS_Javascript_Iphone_Ios_Mobile_Cookies - Fatal编程技术网

Javascript Can';不要在一页上写cookies,Safari iOS

Javascript Can';不要在一页上写cookies,Safari iOS,javascript,iphone,ios,mobile,cookies,Javascript,Iphone,Ios,Mobile,Cookies,我正在建立一个网站,需要注册和登录 注册后,Cookie将写入浏览器以验证会话。在登录期间,将完全相同的cookies写入浏览器。我使用完全相同的功能和技术在注册和登录中编写cookie 问题是: 在移动设备上(至少使用Safari for iOS),Cookie在注册过程中不会写入,但在登录过程中可以正常工作。(在桌面浏览器中,两者都可以正常工作) 你应该知道: 移动站点不会重定向到不同的URL,也不会加载任何不同的javascript。它只是使用一个媒体查询(CSS)来更改CSS 以下是我尝

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

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

问题是:

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

你应该知道:

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

以下是我尝试过的疑难解答:

已验证我的“set_cookie”功能在移动设备上有效。将我的“阻止cookies”设置设置为“从不”。每次调用函数时,通过记录
document.cookie
验证是否正在调用
set\u cookie
函数(旧的/注销的cookie会记录到控制台,但新的cookie不会写入)。在Safari for iPad上测试,效果很好

可能相关的事情:

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

TL;医生:

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


有什么想法吗?谢谢

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

永远不要相信饼干。有些浏览器禁用了它们。使用会话、添加的get参数或任何其他方法来帮助避免这种情况。