我遇到了chrome和jquery mobile之间的奇怪互动。申请流程很简单:
data-ajax="false"
和rel="external"
所以所有奇特的JQM AJAX内容都被禁用。/auth/facebook/callback
/auth/facebook/callback
302s到真实页面/home
这是一个非常简单的Jquery移动页面在Chrome和Firefox上,jquery mobile' ajax-loading' spinner永远显示,实际页面在DOM中加载但不显示。在Safari(桌面或移动设备)上,页面显示正确。
答案 0 :(得分:2)
问题来自Facebook。从oauth返回时,他们会在您的回调网址中添加一个网址片段#_=_
,这会混淆JQM。正如FB的典型情况一样,这是documented故意没有正当理由,但有关如何处理它的模糊/错误说明。 this SO question中的一堆讨论。我找到的最佳解决方法是在JQM有机会混淆之前将此代码插入页面顶部:
<script>
// workaround Facebook oauth feature-bug
if (window.location.hash == '#_=_') window.location.hash = '';
</script>
答案 1 :(得分:0)
据我所知,AJAX请求不能很好地处理重定向(有很多关于这个主题的SO问题)。
而不是在JavaScript中进行身份验证,服务器端实现如何?对于用户的浏览器来说,它会更快,更简单。