如何使AngularJS不用“/”为hash-fragment加前缀

时间:2014-01-16 17:13:57

标签: javascript angularjs window.location angular-routing

我在自己的网站上使用第三方服务,拥有自己的身份验证流程。有机会重置密码。此功能具有以下流程。您将成为电子邮件,其中包含yoursite.com/#xxx=123456

上的链接

进入此页面后,第三方库被下载,经过一些初始化过程后,它会检查#xxx = \ d + fragment的位置URL以进行一些ajax调用并提示一些ui模式

var hashKeyElements = window.location.toString().match('#xxx=(.*)'); 

没有办法改变他们这样做的方式。 这是问题 - Angular将yoursite.com/#xxx=123456重写为yoursite.com/#/xxx=123456,之后regexp不匹配

我尝试在url中创建double#但它会导致错误。

更新:使用角度1.2.4,它不是SPA,不应通过pushState阻止和推送所有相关链接

谢谢

1 个答案:

答案 0 :(得分:0)

更新

在您提到您没有使用客户端路由后,我再次检查并且似乎angular.js(所有版本)不会向URL添加哈希(/#/),除非您使用$locationProvider或{ {1}}即使$routeProvider。 `


如果您进行客户端路由或使用$ location:

你需要使用html5Mode - docs

html5Mode=false