2015-05-25 100 views
0

我有angularJS應用程序使用ASP MVC WebAPI。我需要獲取用於重置用戶密碼的代碼。正確的URL編碼爲angularjs路由

我的路線是這樣的

$routeProvider.when("/reset/:token", { 
controller: "loginController", 
templateUrl: "/app/views/reset-password-confirm.html" 
}); 

這工作:http://localhost:32150/#/reset/AQAAANCMnd8BFdERjHoAwE2FCl2BsBAAAA9pA7cuLEnE6SqyFKTJPlewAAAAACAAAAAAAQZgAAAAEAACAAAAA9GudF4k3KPq1IeOc12moCFFCK80GiVLfQ43LoGgDHawAAAAAOgAAAAAIAACAAAACXlb8kgEE5kb2F2Bnqw1iSins5FyeuzlVOEc12BTtM71OXHAAAABWN9RxDvdzSQUTe2NrvYF6OCw2aQh1HiyBYGbQFhvtaJc3AX71EGAHLvsbIpWv9kgcKkrI9mhSmeCdguT9qQTpURIMulrTFg0z3Y0fEtB6FJHNq7P9S2pGRyCoon3sk2BNUfBamE3Pye2ND3qJfteM2BQAAAAJ17NJK5Nn98CSH4Q8uT5Txj8yHpV6xFVJ2e0Q9At2Bv4YV5r5I0kPdVejBA1WJMLvoJ6l0R5p3R2kXsj73M323I3D

但這並不:http://localhost:32150/#/reset/AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAA9pA7cuLEnE6SqyFKTJPlewAAAAACAAAAAAAQZgAAAAEAACAAAAA9GudF4k3KPq1IeOc12moCFFCK80GiVLfQ43LoGgDHawAAAAAOgAAAAAIAACAAAACXlb8kgEE5kb%2F%2Bnqw1iSins5FyeuzlVOEc1%2BTtM71OXHAAAABWN9RxDvdzSQUTe2NrvYF6OCw2aQh1HiyBYGbQFhvtaJc3AX71EGAHLvsbIpWv9kgcKkrI9mhSmeCdguT9qQTpURIMulrTFg0z3Y0fEtB6FJHNq7P9S2pGRyCoon3sk%2BNUfBamE3Pye2ND3qJfteM%2BQAAAAJ17NJK5Nn98CSH4Q8uT5Txj8yHpV6xFVJ2e0Q9At%2Bv4YV5r5I0kPdVejBA1WJMLvoJ6l0R5p3R2kXsj73M323I%3D

我注意到,如果我刪除%路線的作品,但因爲令牌字符串有字符/我必須找到一種編碼方式。 任何方式我可以在ASP MVC webAPI中編碼字符串,以便它在AngularJS中工作?

+0

這個問題已經在這裏回答了:[link](http://stackoverflow.com/questions/16227004/how-to-capture-urls-with-arbitrary-number-of-slashes-in-angular-js) –

回答

0

這可能是一個安全問題。嘗試在您的web.config中添加relaxedUrlToFileSystemMapping。例如:

<system.web> 
<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" /> 
</system.web> 
+0

我使用asp Web API作爲後端,但前端是AngularJS(在完全不同的站點),所以我認爲問題可能是AngularJS路由。 –

0
$routeProvider.when("/confirm_email/:token*", { 
    controller: "signupController", 
    templateUrl: "/app/views/confirm-email.html" 
}); 

添加*字符路線的結束將使代碼按預期方式工作。