簡體   English   中英

Angularjs,從IE中的url中刪除#

[英]Angularjs, remove # from url in IE

我有以下問題。 在客戶端,我有角度路由,類似的東西:

...
$locationProvider.html5Mode(true);
    $routeProvider.
        when('/item/:item_id', { reloadOnSearch: false, templateUrl: '/views/main/partials/_item.html', controller: ItemCtrl }).
        otherwise({redirectTo: '/login'}); // Default
...

和PHP上的服務器端的一些路由

$req=$_SERVER['REQUEST_URI'];
if(strpos($req,'/login') > -1){
    include __DIR__.'/../views/login/index.php';
} else if(strpos($req,'/item/') > -1) {
    include __DIR__.'/../views/item/index.php';
else {
    include __DIR__.'/../views/login/index.php';
}

一切都很好,除了IE,因為當在IE上執行客戶端路由時,url會從這個更改

myapp/item/123

這樣的事情

myapp/#/item/123

當服務器端在客戶端路由后收到這種請求URL時,散列標簽之后的所有數據都消失了,我無法區分應該使用哪個路由。 我可以從網址中刪除#,還是做其他事情讓IE和服務器端安靜地生活? 我試圖解決它失敗了。 謝謝

您的IE版本不支持HTML5 History API 要發送哈希,你應該做一些額外的工作,例如在$routeChangeStart上做額外的ajax請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM