我对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;
}
答案 0 :(得分:2)
我找到了解决方案。在ajax响应中,我以这种方式重新加载验证码:
if (window.grecaptcha) {
grecaptcha.reset();
}
答案 1 :(得分:-1)
尝试使用
if(window.grecaptcha) {
grecaptcha.render('widget id')
}