I'm having a massive problem with AngularJS routing.

Up until recently everything has been fine with the following route:

$routeProvider.when('/album/:albumId', {
    controller: 'albumPageController',
    templateUrl: 'views/album.html'
});

使用href:

<a href="/#/album/{{album.id}}">Link</a>

然而,现在所有的斜杠都被编码为%2F.

因此,当我单击该链接或在浏览器中键入localhost:8000/#/album/1时,URL将更改为:

http://localhost:8000/#%2Falbum%2F1

I've tried several things to correct this:

使用ng href而不是href,

任何帮助都将不胜感激!

推荐答案

%2F is the percent-encoding for the forward-slash / character.

这个问题与AngularJS1.6更改了$location服务中hash-bang URL的默认值有关.

要恢复到以前的行为,请执行以下操作:

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

For more information, see SO: angularjs 1.6.0 (latest now) routes not working.

Laravel相关问答推荐

URL类图中的循环关系

Nuxt 3获取多部分表单数据上传不起作用

为什么Laravel在API请求时返回BadMethodCallException?

根据路径的开头重定向

在 Laravel 包中的路由上使用显式或隐式模型绑定

在 Laravel 中设置多个 Vue 组件的问题

在 laravel 项目中放置 css 文件的位置

Laravel Blade:@stop VS @show VS @endsection VS @append

覆盖 HTTP 标头的默认设置 (X-FRAME-OPTIONS)

Laravel 4:处理种子中的关系

Laravel 5.2 中的正则表达式验证

如何判断是否在laravel中设置了cookie?

如何创建具有关系的 Eloquent 模型?

用于集合的 Laravel 5.5 API 资源

laravel 搜索多个以空格分隔的单词

Laravel Eloquent 模型中的字段

找不到框laravel/homestead

Laravel 5 事件处理程序未触发

Laravel 5 - 从控制器级别的所有请求对象中删除参数

如何在laravel中 for each 用户生成唯一的随机值并将其添加到数据库中