【发布时间】:2012-02-07 10:14:48
【问题描述】:
我遇到了一个奇怪的问题,只有 Chrome + Firefox。它不会在 IOS 或 IE9 上重现。
这是再现:
- 加载首页
http://example.com - 登录(通过 rel="external" 超链接)。在我的例子中,我使用 Facebook 的 Oauth 服务器端流程 - 所以这个 URL 是 facebook.com。
- Facebook 接受用户的凭据,然后重定向到
http://example.com/user/callback。此处处理各种 facebook 数据(在查询字符串中提供)。 -
http://example.com/user/callback的服务器端代码然后将用户重定向到http://example.com。用于重定向的机制是来自 ASP.NET MVC3 的RedirectToAction。这将返回 302。
预期结果:
用户会在他们的浏览器中看到一个 URL = http://example.com 并且内容都很好地显示。这适用于 IE 和 Safari。
操作结果(仅限 Chrome)
用户在他们的浏览器中获得一个 URL = http://example.com/#base_domain=example.com
实际页面为空白(无可见内容)
但是,视图源显示内容存在。
操作结果(仅在 Firefox 上)
用户在他们的浏览器中获得一个 URL = http://example.com/#_=_
实际页面为空白(无可见内容)
但是,视图源显示内容存在。
附加信息
如果我在 IE 中输入 URL http://example.com/#base_domain=example.com,我会得到相同的“隐藏”内容(即仍然存在 HTML 源的空白页面)。
我还应该注意,我在应用程序的其他部分使用了 RedirectToAction/302 重定向技术,没有任何问题。
关闭 AJAX 导航后,该问题也会重现。
编辑:这也适用于 Safari (OSX + Windows),没有问题。它只是在 Windows 和 PC 上的 Chrome + Firefox 上明显被破坏。
IOS/Safari:好的 赢/Safari:好的 赢/IE:好的 Windows Phone 模拟器:好的
Win/Firefox: 无聊 Win/Chrome:无聊
OSX/Safari:好的 OSX/Firefox:无聊 OSX/Chrome:无聊
不确定 Android。
【问题讨论】:
-
IOS是指移动版Safari吗?
-
是的 - 没错 - 移动 Safari。不过,我刚刚在 Safari for Windows 上做了一个 repro 并且工作正常(与 IE 和 IOS 相同)。
标签: facebook asp.net-mvc-3 jquery-mobile