我只有一个奇怪的问题,只有Chrome + Firefox。它不会在IOS或IE9上重现。
这是repro:
http://example.com
http://example.com/user/callback
。这里处理各种facebook数据(它在查询字符串中提供)。http://example.com/user/callback
处的服务器端代码会将用户重定向到http://example.com
。用于重定向的机制是来自ASP.NET MVC3的RedirectToAction
。这将返回302。预期成果:
用户会在其浏览器中看到一个网址= http://example.com
,并且内容都很好地显示出来。这适用于IE和Safari。
操作结果(仅限Chrome)
用户在其浏览器中获取网址= http://example.com/#base_domain=example.com
实际页面为空白(无可见内容)
但是,视图来源显示内容存在。
操作结果(仅限Firefox)
用户在其浏览器中获取网址= http://example.com/#_=_
实际页面为空白(无可见内容)
但是,视图来源显示内容存在。
其他信息
如果我在IE中输入网址http://example.com/#base_domain=example.com
,我会得到相同的“隐藏”内容(即仍然存在HTML源的空白页)。
我还应该注意,我在应用程序的其他部分使用RedirectToAction / 302重定向技术,没有任何问题。
该问题还关闭了AJAX导航的重新编译。
编辑:这也适用于Safari(OSX + Windows),没有任何问题。它在Windows和PC上的Chrome + Firefox上显然都被打破了。
IOS / Safari:好的 Win / Safari:好的 赢/ IE:好的 Windows Phone模拟器:好的
Win / Firefox:borked 赢/ Chrome:borked
OSX / Safari:好的 OSX / Firefox:borked OSX / Chrome:borked
不确定Android。
答案 0 :(得分:1)
最佳解决方案似乎是将Push State和Hash Listening设置为false - 因此chrome / ff完全忽略它们。我已经禁用了AJAX导航(有一些有趣的行为,我还没有完全考虑到我的服务器端代码)。
$.mobile.pushStateEnabled = false;
$.mobile.hashListeningEnabled = false;
在尝试让AJAX导航工作之前,我可能会等待1.1并稳定我的其余代码。