【问题标题】:angular url is adding unwanted characters角度网址正在添加不需要的字符
【发布时间】:2016-12-23 23:22:35
【问题描述】:

我有一个项目,通过转到

,在本地工作时 URL 工作正常

本地主机:9000/

网址会变成

http://localhost:9000/#/

由于我所做的一些更改,现在转到

http://localhost:9000/#!/(带感叹号)

此外,其他 URL 变得奇怪。如果我尝试单击一个链接,例如,转到仪表板。它不会带我去那里。相反,它使 URL 像

/#!/#%2Fdashboard

之后什么都没有发生。我做错了什么,我怎么可能解决这个问题?我无法显示任何代码,因为我不知道哪里出错了。我按照以下教程进行操作,之后出现了问题。也许错误在那里?

tutorial link

我在设置路线的地方添加了我的 .config。

  .config(function ($routeProvider, $httpProvider) {
$routeProvider
  .when('/', {
    templateUrl: 'views/main.html',
    controller: 'MainCtrl',
    controllerAs: 'vm',
    activetab: 'main'
  })
  .when('/about', {
    templateUrl: 'views/about.html',
    controller: 'AboutCtrl',
    controllerAs: 'vm',
    activetab: 'about'
  })
  .when('/faq', {
    templateUrl: 'views/faq.html',
    controller: 'FaqCtrl',
    controllerAs: 'vm',
    activetab: 'faq'
  })
  .when('/dashboard', {
    templateUrl: 'views/dashboard.html',
    controller: 'DashboardCtrl',
    controllerAs: 'vm',
    activetab: 'dashboard'
  })
  .when('/logout', {
    templateUrl: 'views/main.html',
    controller: 'LogoutCtrl',
    controllerAs: 'vm'
  })
  .otherwise({
    redirectTo: '/'
  });
  $httpProvider.interceptors.push(['$q', '$window', '$localStorage', function($q, $window, $localStorage) {
    return {
      'request': function (config) {
        config.headers = config.headers || {};
        if ($localStorage.globals) {
          config.headers.access_token = $localStorage.globals.currentUser.token;
        }
        return config;
      },
      'responseError': function(response) {
        switch(response.status) {
          case 403:
            //$window.location = '/'
            break;
          case 404:
            //$window.location = './404.html';
            break;
          case 500:
            $window.location = './500.html';
            break;
        }
        return $q.reject(response);
      }
    };
  }]);

【问题讨论】:

  • 您可以显示与此相关的代码是负责设置您的路线和角度路由器的任何其他配置的代码。
  • @GillesC 我添加了一些代码。我希望这会有所帮助
  • 会不会是 ng-href 搞砸了?
  • @Reshad 这个问题解决了吗?
  • 是的。我现在也添加了如何解决它的答案。 @瓦拉达

标签: angularjs angular-routing


【解决方案1】:

这实际上不是错误。

commit-aa077e8

用于 $location hash-bang URL 的默认哈希前缀已从空字符串 ('') 更改为 bang ('!')

如果你真的不想有哈希前缀,那么你可以通过向你的应用程序添加一个配置块来恢复以前的行为:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);

【讨论】:

    【解决方案2】:

    我已经设法通过使用来解决这个问题

    $locationProvider.hashPrefix('');
    

    这似乎是 1.6.0 angularjs 中的一个错误

    【讨论】:

      【解决方案3】:

      可以确认这是 Angular 1.6.0 中的一个错误。通过恢复到 Angular 1.5.9 修复了我自己的相同问题。

      【讨论】:

        猜你喜欢
        • 2020-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 2016-04-01
        相关资源
        最近更新 更多