我的 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
这样它就会解码为 %,要么删除它......