Angular 2:过期回调没有在google reCAPTCHA中被触发

时间:2016-09-01 11:38:16

标签: angular recaptcha

我在带有谷歌reCAPTCHA的角度2应用程序中有一个表单,我正在加载它如下所示。

<div class="g-recaptcha" [attr.data-sitekey]="sitekey" expired-callback="expCallback" data-callback="verifyCallback"></div>

在相应的组件构造函数中,我正在绑定expCallback,如下所示。

constructor(private _accountsApi: AccountsApiService, private _fb: FormBuilder) {
    this.initForm();
    window['verifyCallback'] = this.recaptchaCallback.bind(this);
    window['expCallback'] = this.resetCaptcha.bind(this);
}

resetCaptcha() {
    grecaptcha.reset();
}

现在,如果用户解决了Captcha并使页面空闲2分钟。现在我在Captcha小部件上收到错误消息“验证已过期。再次选中该复选框” 当我收到此错误消息时,不会调用resetCaptcha()方法。

我错过了什么吗?或者有没有更好的方法在过期时重新加载验证码?

2 个答案:

答案 0 :(得分:0)

我使用的是仅为angular2开发的模块。 使用回调非常好用。

angular2-recaptcha

答案 1 :(得分:0)

您可以使用以下代码重置已验证/已使用的recaptcha

let myWindow: any = window; myWindow.grecaptcha.reset();

目前,您只能将其称为解决方法。有关更多更新,请在github上访问此主题:

Link to this feature thread at GitHub