在重定向之前无法设置cookie

时间:2013-04-30 05:57:03

标签: iphone session mobile cookies webkit

我们有一个奇怪的问题,我开发了一个我们网站的移动版本,它只是位于网站的子文件夹中,例如/mobile/page.asp(我知道.asp classic不要怪我!)< / p>

我确实想要为移动网站创建一个用于普通网站的域名,但我们的CTO告诉我只做一个子文件夹。

但问题是我们希望能够设置一个cookie,让我们知道用户是否在主站点或移动站点上进行WANTS。它们理论上可以放在桌面上,但仍然选择使用移动版本(因为我们在页脚中有链接来切换视图,例如从主站点到移动站点,反之亦然)。

但是,如果有人在没有设置cookie的情况下访问该网站,我们会做一些用户代理嗅探确定他们的设备,然后设置一个cookie,然后再将其重定向到网站的右侧部分。

我们所有的逻辑似乎都是正确的,但是当我们开始测试时,我们开始得到奇怪的结果。

在我的iPhone 3gs上它完美运行(最新的操作系统)然而在其他人的iPhone或Android手机上人们会 - 清晰的饼干(在测试开始时) - 访问该网站 - 代理嗅探会将它们重定向到移动网站 - 当他们点击移动网站上的其他链接时,代码会将他们带回整个网站。

这对我来说没有发生 - 在我们的演示网站上也适用于某些人,而不适用于其他人 - 而且对于安装了FireFox的Android设备上的某些人来说,它运行良好。

我和另一位遇到问题的开发人员坐在一起,逐一完成了这些步骤,做了完全相同的事情,调试就向我们展示了发生了什么。

然而,当我在访问移动网站时获得一个设置为“移动”的cookie时,他出于某种原因却没有。这就像在重定向之前无法设置cookie,即使重定向到同一个域。

我读过一些文章,说在webkit中存在一些带有cookie和重定向的问题,这让我觉得这可能是iPhone Safari浏览器上的问题,但这无法解释为什么我的3G手机有效。

我们尝试过重新编写代码,但我们需要能够设置Cookie并在所有情况下都进行重定向。我们甚至尝试将仅将cookie设置为会话变量的代码更改,但即使这样也无效。

我真的被困住了,其他人也是如此。我们花了好几天试图调试它,但找不到一个共同点,这可以解释为什么它可以在某些设备上运行而不是其他设备。

任何人都可以帮忙!任何建议都将不胜感激。

谢谢!

0 个答案:

没有答案