0

我有一个这样的路由器

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

我真的不明白

4

1 回答 1

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 refresh in IE

于 2013-09-30T16:50:44.027 回答