AngularJSでHTML5モードを有効にすることで、$location
サービスはURLを書き換えて、それらからハッシュバンを削除します。これは私のアプリケーションに役立つ素晴らしい機能ですが、ハッシュバンモードへのフォールバックに問題があります。私のサービスには認証が必要であり、アプリケーションから外部認証メカニズムを使用する必要があります。ユーザーがハッシュバンを含むアプリのURLにアクセスしようとすると、最初にユーザーを認証ページにリダイレクトし(認証に成功しない限り、サービスにアクセスすることはありません)、次にユーザーをアプリケーションにリダイレクトします。ハッシュタグはクライアント側からのみ表示されるため、サーバーに到達するまでにルートのどの部分もドロップされます。認証されると、URLを再入力することができ、それは機能しますが、それはユーザーエクスペリエンスに混乱を引き起こす最初の1回です。
私の質問は$location.html5Mode(true)
、AngularJSで完全にルーティングするhashbangメソッドをスキップして、サポートされていないブラウザーのフルページリロードのフォールバックに移行する方法はありますか?
私が目指しているものの利用可能な実装の最良の比較は、github.comのフォルダーを閲覧するなどです。ブラウザがページの更新を開始せずにURLの書き換えをサポートしている場合、ページは必要な部分を非同期的にロードします。ブラウザがサポートしていない場合、ユーザーがフォルダをクリックすると、ページ全体が更新されます。これは、ハッシュバンモードを使用する代わりにAngularJSで実現できますか?