AngularJSでHTML5モードを有効にすると、$location
サービスはURLを書き換えてハッシュバングを削除します。これは私のアプリケーションで私を助ける素晴らしい機能ですが、ハッシュバンモードへのフォールバックに問題があります。私のサービスは認証を必要とし、アプリケーションから外部認証メカニズムを使用することを余儀なくされています。ユーザーが自分のアプリケーションのURLにハッシュバングを入れようとすると、まず認証ページにリダイレクトされ(正常に認証されない限り私のサービスには触れません)、アプリケーションにリダイレクトされます。ハッシュタグはクライアント側からしか見えないので、サーバーに到達するまでにルートのどの部分が後ろに来るかは決まりません。認証されると、URLを再入力しても動作しますが、その初期の1時間はユーザーエクスペリエンスに支障をきたします。AngularJS HTML5モードは、ハッシュバンの代わりにフルページのリロードに低下します
私の質問は、サポートされていないブラウザでは、$location.html5Mode(true)
から完全なページをリロードするための方法はありませんか。完全にAngularJSでルーティングするhashbangメソッドをスキップしますか?
私が目指しているものの利用可能な実装の最良の比較は、github.comのフォルダをブラウズするなどのものです。ブラウザがページの更新を開始せずにURLの書き換えをサポートしている場合、ページは非同期的に必要な部分をロードします。ブラウザーがそれをサポートしていない場合、ユーザーがフォルダーをクリックすると、フルページリフレッシュが発生します。これは、hashbangモードの代わりにAngularJSで実現できますか?このように、ブラウザのHTML5履歴APIのチェックに$場所と$ routeProvider構成をラップする
は、あなたが今までにこの解決策を考え出すでしたか?私も同様の状況に直面しています。 – Jonathan