0

次の問題があります。クライアント側では、次のような角度のあるルーティングがあります。

...
$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で実行されると、これからURLが変更されるため、IE以外はすべてうまく機能します

myapp/item/123

このようなものに

myapp/#/item/123

サーバー側がクライアントのルーティング後にこの種のリクエスト URL を受信すると、ハッシュ タグの後のすべてのデータがなくなり、どのルートを使用する必要があるかを区別できません。URL から # を削除したり、IE とサーバー側を平和に保つために何か他のことをしたりできますか? 私はそれを解決しようとして失敗しました。ありがとう

4

1 に答える 1

2

お使いのバージョンの IE はHTML5 History APIをサポートしていません。ハッシュを送信するには、追加の ajax リクエストを実行するなど、追加の作業を行う必要があります$routeChangeStart

于 2013-08-20T10:16:07.923 に答える