AngularJS redirectTo在IE8上失败

时间:2013-09-30 14:28:16

标签: javascript internet-explorer angularjs internet-explorer-8

我有这样的路由器

app.config(function($routeProvider, $httpProvider){
    $routeProvider
        .when('/', {
             redirectTo: function(){
              return '/mdp';
             }
         })
         .when('/mdp', {
             templateUrl: 'views/mdp/dashboard.html'
         })
         .when('/mdg', {
             templateUrl: 'views/mdg/dashboard.html'
         })
         .otherwise({
             templateUrl: '/views/error/404.html'
         });
});

效果很好但是当我在IE8时,我有一个奇怪的错误!

我在我的浏览器导航栏中设置了url:localhost:9000,并且可以IE8重定向到:

localhost:9000/#/mdp

但如果我更改了导航栏中的网址并设置了:

localhost:9000/#/mdg 

我输入键盘的输入键没有任何反应,我必须点击CTRL+F5

我真的不明白

1 个答案:

答案 0 :(得分:0)

如果没有主题标签,浏览器会向服务器发出正常的HTTP GET请求,请求显然在localhost:9000/mdp找不到任何内容

有意地从HTTP请求中排除主题标签,因为"it is used to delimit a URI from a fragment identifier in URI references"这对于利用主题标签的javascript路由以及用于维护页面状态的其他逻辑非常有用。

因此,只需更改主题标签不应导致浏览器再次请求该页面。

此帖子中有一些相关信息可能对您有所帮助: javascript location.hash refreshing in IE