从其他地方跳转过来的地址类似于
http://www.test.com/#/login?mustLogin=1&returnUrl=http:%2F%2Fwww.back.com%2F#%2Fback
编码前是
http://www.test.com/#/login?mustLogin=1&returnUrl=http://www.back.com/#/back
然后我的$stateProvider是
$stateProvider.state("login", angularAMD.route({
url: "/login?mustLogin&returnUrl",
templateUrl: "/login/module/auth/views/login.html",
controller: "loginController"
}));
然后我在loginController里
console.log($stateParams);
得到
Object {mustLogin: "1", returnUrl: "http://www.back.com/"}
可以查看出#之后的字符丢失了,
我希望能获取到returnUrl完整的值
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
修正:
首先,
$stateProvider写的不对,url不用那么写其次,你说的从其他地方跳过来的
url也不对,如果正确使用了encodeURIComponentAPI,returnUrl应该是这样的http%3A%2F%2Fwww.back.com%2F%23%2Fback,里面不会出现#。你得去检查跳转你url的地方是否处理错误了应该在跳转前对
returnUrl的值进行encodeURIComponent编码,当使用$stateParams获取到参数的值之后,再使用decodeURIComponent进行解码应该就可以了