angularjs – AugluarJS截断尾随等号
AngularJS在路由到它们时截断尾随等号.我有一个base64字符串,需要作为查询参数添加到url(路由)
例如:http://example.com/#!/updatepassword?code=NnuW3q49QW38Mf-Cg== 这加载为: 这有解决方法吗? 解决方法
如果您尝试将路由设置为字符串,则需要转义=符号.那是因为这个字符在查询字符串中有特殊含义 – 它将参数名称与其值分开.
所以,一个解决方案可能是: var query = "code=NnuW3q49QW38Mf-Cg=="; $location.url("/some/path?" + encodeURIComponent(query)); encodeURIComponent()会做什么,它会替换所有特殊字符 – =将替换为=例如.这将阻止它被解释为键值分隔符. 如果您只想更改查询字符串参数,而不是整个URL,您还可以使用$location.search()方法: $location.search("code","NnuW3q49QW38Mf-Cg=="); 只记得将两个参数传递给该方法,而不是一个.如果你这样做: $location.search("code=NnuW3q49QW38Mf-Cg=="); =符号不会被转义,只会被剥离. Angular在内部使用parseKeyValue()函数来解析查询字符串,可以找到here.您可以看到正在对=符号进行拆分.这就是他们被剥夺的原因. 但是如果你看一下 偷看源代码也提出了另一个解决方案: $location.search({"code": "NnuW3q49QW38Mf-Cg=="}); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |