使用angular.js激活链接web api

时间:2015-01-16 20:10:09

标签: asp.net-mvc angularjs

我有一个使用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中验证令牌时,它不起作用。

不确定理解为什么+它被空格取代以及如何避免这种情况。

由于

2 个答案:

答案 0 :(得分:1)

问题在于查询字符串+字符are replaced by spaces

  

网址编码:

     

HTML指定以下转换:

     
      
  • SPACE编码为' +'或"%20" [9]
  •   

您可以做的是用服务器上的+替换空格字符:

string newCode=code.Replace(' ','+')

答案 1 :(得分:0)

一个选项可能是首先构建字符串并完全消除+。