我的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路由具有包含重音符号的参数?
我如何对激活密钥进行编码:有关信息,我使用Java URLEncoder和UTF-8编码字符集
谢谢您的帮助:)
答案 0 :(得分:1)
https://en.wikipedia.org/wiki/Percent-encoding
由于百分比字符(%)用作百分比编码八位字节的指示符,因此必须将该百分比字符编码为%25才能将该八位字节用作URI中的数据。
因此,看来您的URI仅含%无效。您需要对其进行正确编码。要么使用%25
使其解码为%,要么将其删除...