当设置$ locationProvider.html5Mode(true).hashPrefix('!')时,Angular.js在URL上添加#%2F

muk*_*iur 5 angularjs

配置完成后:$locationProvider.html5Mode(true).hashPrefix('!') 当我www.example.com/search在浏览器(chrome)上输入url:然后按回车键,然后转为:www.example.com/#%2Fsearch然后转到主页.

当我点击链接<a href="/search" />然后它的工作.如果我删除.hashPrefix('!')然后也工作正常.但我需要那个hashPrefix('!')

知道怎么解决这个问题?

Thi*_*rte 5

这发生在我身上,因为我的所有链接都有一个"#",就像在www.example.com/search/#/xxx/yyy.点击后,它会带你去www.example.com/search/#%2Fxxx%2Fyyy.所以我刚删除它们,问题就消失了.


小智 5

我知道这是旧帖子,问题已经解决。我正在使用的应用程序也有同样的问题,但是就我而言,我们应该保留“#”。因此,我所做的就是添加以下行:

$locationProvider.html5Mode(false).hashPrefix('');
Run Code Online (Sandbox Code Playgroud)

如果尚未修改.config参数,请不要忘记修改它,例如:

.config(function($routeProvider, $locationProvider)
Run Code Online (Sandbox Code Playgroud)