如何从angular.js中的重定向URL捕获并获取值?

时间:2016-05-06 06:24:46

标签: angularjs node.js

我使用angular.js作为前端,node.js作为后端,现在我正在调用一个URL,这个URL在我本地主页的按钮点击事件中提到。

示例网址:

https://locahost:3000/auth/authorize?response_type=code&client_id=abzefcbbkjajsdd&scope=userfetchit&redirect_uri=localhost&nonce=32324

当我拨打上述网址时,它会在新窗口中显示登录页面,在我给出电子邮件和密码后,它会被重定向到另一个URL,如下所述

重定向的网址:

https://localhost:3000/auth/localhost?code=8dacae52ee284db3dc776aa6d3563912

预期结果:

现在,我想获得代码值" 8dacae52ee284db3dc776aa6d3563912"来自angular.js。

中的上述网址

HTML code:

<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);

        };

}]);

1 个答案:

答案 0 :(得分:1)

首先,您需要在$stateProvider中添加代码参数,如下所示:

.state('yourstate', {
  url: '/localhost?:code',
  templateUrl: 'localhost.html'
});

然后在您的控制器中,您可以致电:

console.log($stateParams.code);

就是这样。您可以将此值设置为范围变量或任何内容。