1

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

我确实想为移动站点创建两个域,一个为普通站点创建一个域,但我们的 CTO 告诉我只创建一个子文件夹。

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

但是,如果有人在没有设置 cookie 的情况下访问该站点,我们会进行一些用户代理嗅探以确定他们的设备,然后在将他们重定向到站点的正确部分之前设置一个 cookie。

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

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

这对我来说并没有发生——在我们的演示网站上它也适用于某些人,而不适用于其他人——而且对于在 Android 设备上下载 FireFox 的人来说也可以正常工作。

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

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

我阅读了一些文章,其中说 webkit 中存在 cookie 和重定向问题,这让我认为这可能是 iPhone Safari 浏览器的问题,但这并不能解释为什么我的 3Gs 手机可以工作。

我们已经尝试重新编写代码,但我们需要能够在所有情况下设置 cookie 并进行重定向。我们甚至尝试将设置 cookie 的代码更改为会话变量,但即使这样也不起作用。

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

谁能帮忙!!!任何建议将不胜感激。

谢谢!

4

0 回答 0