AngularJS 重定向在 IE8 上失败

AngularJS redirectTo fails on IE8

本文关键字:失败 IE8 重定向 AngularJS      更新时间:2023-09-26

我有这样的路由器

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上时,我遇到了一个奇怪的错误!

我在浏览器导航栏中设置了网址:localhost:9000,可以IE8重定向到:

localhost:9000/#/mdp

但是之后,如果我更改导航栏中的 url 并设置:

localhost:9000/#/mdg 

我在键盘的回车键上输入没有任何反应,我必须按CTRL+F5

我真的不明白

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

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

因此,简单地更改主题标签不应导致浏览器对该页面发出另一个请求。

这篇文章中有一些相关信息可能对您有所帮助:javascript location.hash 刷新在 IE 中