JQuery Mobile(和ASP.NET MVC3)的空白重定向页



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

这是复印件:

  1. 加载主页http://example.com
  2. 登录(通过rel="外部"超链接)。在我的例子中,我使用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:正常Win/Safari:可以Win/IE:好Windows Phone模拟器:OK

Win/FFirefox:borkedWin/Chrome:borked

OSX/Safari:可以OSX/Firefox:中止OSX/Chrome:borked

不确定安卓系统。

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

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

我可能会等到1.1版本并稳定我的其余代码,然后再尝试使用AJAX导航。

相关内容

  • 没有找到相关文章

最新更新