【问题标题】:Blank Redirect Page with JQuery Mobile (and ASP.NET MVC3)带有 JQuery Mobile(和 ASP.NET MVC3)的空白重定向页面
【发布时间】:2012-02-07 10:14:48
【问题描述】:

我遇到了一个奇怪的问题,只有 Chrome + Firefox。它不会在 IOS 或 IE9 上重现。

这是再现:

  1. 加载首页http://example.com
  2. 登录(通过 rel="external" 超链接)。在我的例子中,我使用 Facebook 的 Oauth 服务器端流程 - 所以这个 URL 是 facebook.com。
  3. Facebook 接受用户的凭据,然后重定向到http://example.com/user/callback。此处处理各种 facebook 数据(在查询字符串中提供)。
  4. 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


【解决方案1】:

最好的解决方案似乎是将 Push State 和 Hash Listening 设置为 false - 因此 chrome/ff 完全忽略它们。我已经禁用了 AJAX 导航(我的服务器端代码还没有完全考虑到一些有趣的行为)。

    $.mobile.pushStateEnabled = false;
    $.mobile.hashListeningEnabled = false;

我可能会等待 1.1 并稳定我的其余代码,然后再尝试使 AJAX 导航正常工作。

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 2013-06-15
    • 2016-03-25
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多