我在带有谷歌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()
方法。
我错过了什么吗?或者有没有更好的方法在过期时重新加载验证码?
答案 0 :(得分:0)
我使用的是仅为angular2开发的模块。 使用回调非常好用。
答案 1 :(得分:0)
您可以使用以下代码重置已验证/已使用的recaptcha
let myWindow: any = window;
myWindow.grecaptcha.reset();
目前,您只能将其称为解决方法。有关更多更新,请在github上访问此主题: