2012-05-10 2 views
0

Chromeとjquery mobileの間に奇妙なやり取りがあります。アプリケーションの流れは簡単です:ChromeのFacebook認証後にJqueryモバイルページが読み込まれない

  • ホームページ/ログイン画面。 「ログイン」リンクはdata-ajax="false"rel="external"です。そのため、すべてのファンシーなJQM AJAXは無効になっています。
  • ChromeとFirefoxの上で非常にシンプルなjQueryのモバイルページで実ページ/home/auth/facebook/callback
  • /auth/facebook/callback 302S

jqueryの携帯で終わるのOAuthダンスのための302Sのシリーズのajax-実際のページはDOMにロードされているが表示されていない状態で永久に表示されます。 Safari(デスクトップまたはモバイル)では、ページが正しく表示されます。

答えて

2

問題はFacebookから発生しています。 oauthから戻ると、彼らはあなたのコールバックURLにURLフラグメント#_=_を追加し、JQMを混乱させます。 FBにとって典型的なように、これは正当な理由がなく慎重であるが、それに対処する方法が漠然としている/間違っているというdocumentedです。 this SO questionの議論の束。私が見つけた最良の回避策は、JQMが混乱する可能性がある前に、このコードをページの上部に挿入することです。

0

私の知る限り、AJAXリクエストはリダイレクトをうまく処理しません(この件については、たくさんの質問があります)。

JavaScriptで認証する代わりに、サーバー側の実装はどうですか?ユーザのブラウザにとっては、より速く、より複雑ではありません。

+0

回避策のための適切な提案。しかし、リクエストはAJAXではありません - 私はそれをオフにしました。これは、リダイレクト後にブラウザにロードされる新しい完全なページです。 – Leopd