将Google Recaptcha与ajax一起使用 - 不再加载

时间:2016-09-01 18:57:17

标签: javascript jquery recaptcha

我对Google recaptcha有疑问。我使用Ajax发送表单数据并重新访问会话过期,用户应再次验证验证码。但如果已经检查过一次,它将显示为已检查的chechbox,用户应重新加载页面...

我使用PHP验证来重新验证回复。

但是recaptcha重新加载的正确解决方案是什么 - 只是添加类似的js验证或者有更好的解决方案:

var v = grecaptcha.getResponse();

if(v.length == 0)
{
  $('<label class="error captcha_field">This field is required!</label>').insertAfter($(".g-  recaptcha").closest('.form-group'));
  return false;
}

现在,我尝试使用以下代码,但它返回了js错误:

  

未定义响应

var captcha = grecaptcha.getResponse();
if (captcha == 0){

  $('<label class="error       captcha_field">'+response.errors.captcha_failed+'</label>').insertAfter($(".g-recaptcha").closest('.form-group'));
  return false;
}

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。在ajax响应中,我以这种方式重新加载验证码:

 if (window.grecaptcha) {
    grecaptcha.reset();
 }

答案 1 :(得分:-1)

尝试使用

if(window.grecaptcha) {
  grecaptcha.render('widget id')
}