没有#的Angularjs无限循环!在网址中

问题描述 投票:1回答:1

我正在使用AngularJS v1.6.5

当我浏览网站的页面时,URL的形式为:

https://mySite.co.uk/#!/login

但是,当我键入一个没有hash-bang的地址时,该站点进入无限循环,并在浏览器控制台输出中显示以下消息:

警告:试图加载角度不止一次。

我的路线提供者看起来像这样

.config(['$routeProvider', '$httpProvider', function ($routeProvider, $httpProvider) {
$routeProvider
  .when('/', {
    templateUrl: 'partials/home.html',
    controller: 'HomeCtrl'
  }).
  //ALL ELSE
  .otherwise({
    redirectTo: '/'
  });

我有一个拦截器侦听HTTP错误消息但是这似乎没有被调用:

$httpProvider.interceptors.push(['$q', '$location', '$localStorage', function ($q, $location, $localStorage) {
  return {
    'responseError': function (response) {
      if (response.status === 404) {
        window.location = "/";
      }
      return $q.reject(response);
    }
  };
}]);
javascript angularjs
1个回答
1
投票

我找到的一个解决方案是使用html5模式删除#!从URL中,路由提供程序中的“.otherwise”路由捕获任何其他请求。

$locationProvider.html5Mode(true);

然后在index.html中添加:

<head>
    <meta charset="utf-8">
    <base href="/">
</head>
© www.soinside.com 2019 - 2024. All rights reserved.