1

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

进入此页面后,第三方库已下载,并经过一些初始化过程后,它会检查位置 url 是否有 #xxx=\d+ 片段以进行一些 ajax 调用并提示一些 ui 模态

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

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

我试图在 url 中创建双#,但它会导致错误。

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

谢谢

4

1 回答 1

0

更新

在您提到您没有使用客户端路由之后,我再次检查了 angular.js(所有版本)似乎不会将哈希(/#/)添加到 URL,除非您使用$locationProvider$routeProvider什至在html5Mode=false. `


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

您需要使用 html5Mode -文档

app.config(function($locationProvider){
  $locationProvider.html5Mode(true)
})
于 2014-01-16T17:16:21.923 回答