使用 angular.js 激活 link 网络 api
Activation link web api using angular.js
我有一个使用 angular.js 的网站,我的后端使用 asp.net web api。当新用户注册时,会发送一封电子邮件,其中包含激活 link 和其中的令牌,如下所示:
localhost:51426/#/activation?userid=test&code=FCuuf27NzVvmwp2Ksd7IDt83C2XZmZ2paCrZPBLgr9qR8xCaXELvqKCsWlg4uiokb07XK5sQ+2BazHN1+2B74q14grkQY2OHDAVeWlin5GE8ugkyw+2BJFFzd3Q2YiVuMxkmkO6OFdhIyfzUQMV8NPipME+2FST1pa0OuQs90kRUNR5kTkPlGQYKflDOMQvDGV84fZIw
当用户单击 link 时,我有一个 angular 控制器,它基本上只是获取参数并调用 web.api 中的好方法,如下所示:
return $http.post(baseUrl + 'api/v1/account/confirmAccount?userId=' + userId + '&code=' + code);
问题是服务器端的所有 + 都被 space 替换了,所以当我尝试在我的网站 api 中验证令牌时,它不起作用。
不确定为什么 + 被替换为 space 以及如何避免这种情况。
谢谢
一个选项可能是先构建字符串并完全消除 +。
问题是查询字符串+字符are replaced by spaces:
URL Encoding:
The HTML specifies the following transformation:
- SPACE is encoded as '+' or "%20" [9]
您可以做的是在服务器上用 + 替换 space 字符:
string newCode=code.Replace(' ','+')
我有一个使用 angular.js 的网站,我的后端使用 asp.net web api。当新用户注册时,会发送一封电子邮件,其中包含激活 link 和其中的令牌,如下所示:
localhost:51426/#/activation?userid=test&code=FCuuf27NzVvmwp2Ksd7IDt83C2XZmZ2paCrZPBLgr9qR8xCaXELvqKCsWlg4uiokb07XK5sQ+2BazHN1+2B74q14grkQY2OHDAVeWlin5GE8ugkyw+2BJFFzd3Q2YiVuMxkmkO6OFdhIyfzUQMV8NPipME+2FST1pa0OuQs90kRUNR5kTkPlGQYKflDOMQvDGV84fZIw
当用户单击 link 时,我有一个 angular 控制器,它基本上只是获取参数并调用 web.api 中的好方法,如下所示:
return $http.post(baseUrl + 'api/v1/account/confirmAccount?userId=' + userId + '&code=' + code);
问题是服务器端的所有 + 都被 space 替换了,所以当我尝试在我的网站 api 中验证令牌时,它不起作用。
不确定为什么 + 被替换为 space 以及如何避免这种情况。
谢谢
一个选项可能是先构建字符串并完全消除 +。
问题是查询字符串+字符are replaced by spaces:
URL Encoding:
The HTML specifies the following transformation:
- SPACE is encoded as '+' or "%20" [9]
您可以做的是在服务器上用 + 替换 space 字符:
string newCode=code.Replace(' ','+')