Javascript AngularJS';HTML5的模式增加了一个“#”。U44k6nKSyyk“;在URL的末尾,并将所有项目弄乱[AddThis“data”u track“u addressbar”选项冲突]

Javascript AngularJS';HTML5的模式增加了一个“#”。U44k6nKSyyk“;在URL的末尾,并将所有项目弄乱[AddThis“data”u track“u addressbar”选项冲突],javascript,angularjs,infinite-loop,addthis,Javascript,Angularjs,Infinite Loop,Addthis,我在尝试转换URL时遇到了一个奇怪的问题http://localhost:8080/myProject/#/me使用AngularJS的HTML5模式(v1.2.1)。服务器是使用SpringMVC实现的 我有以下基本设置: 当我启用AngularJS的HTML5模式时: $locationProvider.html5Mode(true).hashPrefix(“!”); 并浏览: http://localhost:8080/myProject/me 在最初的几秒钟里,一切似乎都按预期进

我在尝试转换URL时遇到了一个奇怪的问题
http://localhost:8080/myProject/#/me
使用AngularJS的HTML5模式(v1.2.1)。服务器是使用SpringMVC实现的

我有以下基本设置:


当我启用AngularJS的HTML5模式时:

$locationProvider.html5Mode(true).hashPrefix(“!”);
并浏览:

http://localhost:8080/myProject/me
在最初的几秒钟里,一切似乎都按预期进行

但是,URL会自动转换为:

http://localhost:8080/myProject/me#.U44k6nKSyyk
在JavaScript的控制台中,我多次重复以下错误(就像陷入无限循环中一样):

错误:[$rootScope:infdig]已达到10$digest()迭代次数。流产!
在过去5次迭代中被解雇的观察者:[“fn:$locationWatch;newVal:7;oldVal:6”,“fn:sceprasted;newVal:\”static-1.0.0.2/html/player.html\“oldVal:undefined”,“fn:sceprasted;newVal:\”static-1.0.0.2/html/filters.html\“oldVal:undefined”,“fn:sceprasted”;“static-1.0.0.0.2/html/videos.html\”oldVal:undefined”],[“fn:$locationWatch;newVal:8;oldVal:7”,“fn:scepassestrusted;newVal:\“static-1.0.0.2/html/player.html\”oldVal:undefined”,“fn:scepassestrusted;newVal:\“static-1.0.0.2/html/filters.html\”oldVal:undefined”,“fn:scepassessestrusted;newVal:\“static-1.0.0.0.2/html/videos.html\”oldVal:undefined”][“fn:$locationWatch;newVal:9;oldVal:8”,“fn:scepassetrusted;newVal:\”static-1.0.0.2/html/player.html\“oldVal:undefined”,“fn:scepassetrusted;newVal:\”static-1.0.0.2/html/filters.html\”;oldVal:undefined”,“fn:scepassetrusted”;newVal:\”static-1.0.0.0.0.2/html\“oldVal:undefined”],[”fn:$locationWatch;newVal:10;oldVal:9”,“fn:scepassetusted;newVal:\“static-1.0.2/html/player.html\”oldVal:undefined”,“fn:scepassetusted;newVal:\“static-1.0.0.2/html/filters.html\”;oldVal:undefined”,“fn:scepassetusted”;newVal:\“static-1.0.0.0.2/videos.html\”oldVal:undefined“,[”fn:$locationWatch;newVal:11;oldVal:10”,“fn:scepassetusted;newVal:\“static-1.0.2/html/player.html\”oldVal:undefined”,“fn:scepassetusted;newVal:\“static-1.0.0.2/html/filters.html\”oldVal:undefined”,“fn:scepassetusted;newVal:\“static-1.0.0.0.2/videos.html\”oldVal:undefined”]
http://errors.angularjs.org/1.2.1/$rootScope/infdig[…]
小写(http://localhost:18080/myProject/static-1.0.0.2/lib/angularjs-1.2.1/angular.js:78:12)
在范围内。$get.Scope。$digest(http://localhost:18080/myProject/static-1.0.0.2/lib/angularjs-1.2.1/angular.js:11472:19)
范围为$get.Scope.$apply(http://localhost:18080/myProject/static-1.0.0.2/lib/angularjs-1.2.1/angular.js:11682:24)
完成(http://localhost:18080/myProject/static-1.0.0.2/lib/angularjs-1.2.1/angular.js:7699:45)
完成任务时(http://localhost:18080/myProject/static-1.0.0.2/lib/angularjs-1.2.1/angular.js:7865:7)
在XMLHttpRequest.xhr.onreadystatechange(http://localhost:18080/myProject/static-1.0.0.2/lib/angularjs-1.2.1/angular.js:7821:11)
我使用了服务器端:


^/我
/
奇怪的是,当我注释
.html5Mode(true).hashPrefix(“!”)
行时,
#/me
URL的行为与预期一致(没有错误,没有额外的URL后缀…)

你知道这个问题是从哪里来的吗?如果你有预感的话,请毫不犹豫地询问我关于某些方面的更多细节。

我很久以前就在我的项目中添加了,并将其设置为
true

我注意到的
#.U44k6nKSyyk
后缀实际上是AddThis半随机值,用于标识每个页面视图

这个AddThis
data\u track\u addressbar
选项和AngularJS的HTML5模式之间肯定存在冲突,因为禁用该选项后,一切最终都会按预期运行……多么荒谬的错误


如果有人知道原因,我想解释一下。;)

试一下。^^可能客户端和服务器端之间存在冲突,我的意思是,不需要为HTML5模式启用重写规则,至少如果你没有使用seo挂钩,但即使在这种情况下,你也需要一些东西来始终返回索引页@Whisher重写规则用于告诉服务器不要接受
/me
URL(否则返回404,请参阅)。我知道重写规则是什么,可能你还没有明白我的意思^^