如何从angular.js中的redirectURL捕获和获取价值?
我使用angular.js作为前端和node.js作为后端,现在我打电话在我的本地主页中button点击事件下面提到的URL。
示例url:
https://开头的locahost:3000 / AUTH /授权RESPONSE_TYPE =代码&CLIENT_ID = abzefcbbkjajsdd&范围= userfetchit&REDIRECT_URI =本地主机&随机数= 32324
当我打电话给上面的URL它显示login页面在新窗口中,并在我给了电子邮件和密码后,它被redirect到下面提到的另一个URL
redirect的url:
HTTPS://本地主机:3000 / AUTH /本地主机代码= 8dacae52ee284db3dc776aa6d3563912
预期结果 :
现在,我想在angular.js中从上面的URL中获取代码值“8dacae52ee284db3dc776aa6d3563912”。
HTML代码:
<html ng-app='app' ng-controller='LoginController'> <head> </head> <body> <div class="container"> <div class="jumbotron"> <button type="button" class="btn btn-primary btn-lg" ng-click="tokenLogin()"> New Login </button> </div> </div> <pre>{{ cleanData | json}}</pre> </body> </html>
控制器代码:
angular.module('app', []) .controller('LoginController', ['$location','$window','$scope', '$filter', function($location,$window,$scope, $filter) { $scope.tokenLogin = function() { var url = 'https://localhost:3000/auth/authorize?response_type=code&client_id=abzefcbbkjajsdd&scope=userfetchit&redirect_uri=localhost&nonce=32324'; $window.open(url); }; }]);
首先,你需要像这样在你的$stateProvider
添加代码参数:
.state('yourstate', { url: '/localhost?:code', templateUrl: 'localhost.html' });
然后在你的控制器中,你可以调用:
console.log($stateParams.code);
就是这样。 您可以将此值设置为范围variables或任何东西。