我有一个使用angular.js的网站,而我的后端正在使用asp.net web api。当一个新用户注册一个电子邮件时,会发送一个激活链接和一个令牌,如下所示:
本地主机:51426 /#/活化的userid =试验&安培;代码= FCuuf27NzVvmwp2Ksd7IDt83C2XZmZ2paCrZPBLgr9qR8xCaXELvqKCsWlg4uiokb07XK5sQ + 2BazHN1 + 2B74q14grkQY2OHDAVeWlin5GE8ugkyw + 2BJFFzd3Q2YiVuMxkmkO6OFdhIyfzUQMV8NPipME + 2FST1pa0OuQs90kRUNR5kTkPlGQYKflDOMQvDGV84fZIw
当用户点击链接时,我有一个角度控制器,基本上只需要参数并在web.api中调用好方法,如下所示:
返回$ http.post(baseUrl +' api / v1 / account / confirmAccount?userId =' + userId +'& code =' + code);
似乎所有+的问题都被服务器端的空间所取代,所以当我尝试在我的web api中验证令牌时,它不起作用。
不确定理解为什么+它被空格取代以及如何避免这种情况。
由于
答案 0 :(得分:1)
问题在于查询字符串+字符are replaced by spaces:
网址编码:
HTML指定以下转换:
- SPACE编码为' +'或"%20" [9]
您可以做的是用服务器上的+替换空格字符:
string newCode=code.Replace(' ','+')
答案 1 :(得分:0)
一个选项可能是首先构建字符串并完全消除+。