由 AngularJS 路由器解释的"%"符号百分比



我的 AngularJS 应用程序中有以下路由

var accountactivation = {
name: 'accountactivation',
url: '/activate/:code',
templateUrl: 'views/account/activation.html',
controller: 'AccountActivationController',
authenticate: false
};

像这样添加到路由器

$stateProvider.state(accountactivation)

这是一个帐户激活系统,其中:code是激活码。此代码是 URL 编码的。

问题:有时:code包含%字符。然后,导航器被重定向到登录,而不是显示帐户激活页面。

路由示例

  • http://localhost:9000/#!/activate/c43q6zb2正常工作
  • http://localhost:9000/#!/activate/c43q6zb2%被重定向到登录(有时会导致空白页(
  • http://localhost:9000/#!/activate/c43q6zb2Fxb%2FxQkjc2qnjc39QEYTQtpVmgWbw2gzNII0z8QRFrRhz%2FNC4LxzqBIYw5tqM9NaY8ejTxIRXQCfTh8hFszyARL%2Ff9MoOp2MvzNulqefVczsuGpZA8RZArQk也不起作用

是否可以允许 angularjs 路由具有包含 prcentages 符号的参数?

如何对激活密钥进行编码:有关信息,我正在使用带有 UTF-8 编码字符集的 java URLEncoder

感谢您的帮助:)

https://en.wikipedia.org/wiki/Percent-encoding

由于百分比字符 (% ( 用作百分比编码八位字节的指示符,因此必须将其百分比编码为 %25,该八位字节才能用作 URI 中的数据。

因此,您的 URI 似乎无效,只有 %。您需要正确编码它。要么使用%25这样它就会解码为 %,要么删除它......

最新更新