通過在AngularJS中啓用HTML5模式,$location
服務將重寫URL以從其中刪除hashbang。這是一個很棒的功能,它可以幫助我處理我的應用程序,但是它的後備散列模式有一個問題。我的服務需要身份驗證,並且我不得不使用我的應用程序中的外部身份驗證機制。如果用戶試圖通過hashbang訪問我的應用程序的URL,它將首先將它們重定向到身份驗證頁面(不會觸及我的服務,除非成功通過身份驗證),然後將它們重定向回我的應用程序。由於哈希標籤只能從客戶端看到,它會在客戶端打到我的服務器時丟棄路由的任何部分。一旦他們通過身份驗證,他們可能會重新輸入網址,並且會起作用,但那是一個初始時間,會導致用戶體驗中斷。AngularJS HTML5模式降級爲整頁重新加載以代替hashbang
我的問題是,有沒有辦法從$location.html5Mode(true)
到不支持瀏覽器的整頁重新加載的回退,跳過完全在AngularJS中進行路由的hashbang方法?
我想要的目標的可用實現的最佳比較將是諸如瀏覽github.com上的文件夾。如果瀏覽器支持在不啓動頁面刷新的情況下重寫URL,頁面將異步加載必要的部分。如果瀏覽器不支持它,當用戶點擊一個文件夾時,會發生整頁刷新。用AngularJS代替使用hashbang模式可以實現嗎?
你有沒有想出一個解決這個?我面臨着類似的情況。 – Jonathan 2014-05-19 19:10:26