我正在尝试在AngularJS网络应用中实施隐形 reCAPTCHA。根据他们的文档,我应该在登录表单的提交按钮中添加一个名为“data-callback”的属性。但是,我使用ng-click将http请求的功能附加到按钮。那么我应该把“data-callback”属性的值放入什么?另外,我怎么知道recaptcha结果是否成功,并通过我的http请求获得g-recaptcha-response发送到服务器?
答案 0 :(得分:10)
有一个角度包装器,但是如果像我一样,你想使用原始的JavaScript库,那么这是怎么做的:
数据回调期望java脚本全局函数,因此使用$ scope内的函数将无法工作..我想出的解决方案是创建一个继承angular函数的全局函数。
所以你应该这样做:
$scope.login = function (token) {
// your login logic
}
$window.login = $scope.login;
并且不要忘记在您的范围内注入$ window作为依赖项。
google invisible reCaptcha会向您发送一个令牌,以便您验证用户服务器端。
并在你的HTML中:
<button class="g-recaptcha"
data-sitekey="your_google_key_here"
data-callback="login"
data-size>
Login
</button>
希望这会有所帮助。