javascript - Google reCaptcha 2 TypeError : a is null after calling grecaptcha. 重置

标签 javascript jquery ajax recaptcha

我有一个基于 AJAX 的注册页面,它可以在客户端和服务器上进行验证。

当服务器端验证失败时,AJAX 将错误返回到屏幕并尝试使用 grecaptcha.reset() 重置 recaptcha。

重置验证码似乎工作正常,客户可以重新勾选“我不是机器人”框并继续,但是在重置验证码后,页面上的滚动操作会导致大量类型错误: a is null javascript recaptcha_en.js 错误。

TypeError: a is null
https://www.gstatic.com/recaptcha/api2/r20151104115408/recaptcha__en.js
Line 50

代码(简化):

var recaptcha1;
var onRecaptchaLoad = function () {
    recaptcha1 = grecaptcha.render('gRecaptcha', {
        'sitekey': 'my site key',
        'callback': CaptchaResponse
    });
};

$.ajax({
type: "POST",
url: "SaveDetails",
contentType: "application/json; charset=utf-8", 
dataType: "json",
data: data,
cache: false,
success: function (result) {
    if (result != null) {
        if (result.d.Success) {
            //success
        }else{             
            grecaptcha.reset(recaptcha1);
        }
     }
}
});

最佳答案

有一个同样的问题,我发现所有有用的思考是 recapthca 正在尝试加载旧版本或其他东西(我无法重现但在某些情况下我得到了另一个版本的验证码)...和另一个与相关的想法我的验证码显示相同行为的模态窗口。

顺便说一句:不仅滚动事件触发错误垃圾邮件而且任何窗口大小调整也是如此。

希望以上内容对您有所帮助。

关于javascript - Google reCaptcha 2 TypeError : a is null after calling grecaptcha. 重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33614225/

相关文章:

javascript - 将带点符号的字符串转换为 JSON

javascript - 如何在javascript中为所有浏览器添加收藏夹/书签

jQuery - 按值隐藏选项元素

javascript - 表单 Action onclick 无需使用 Ajax 刷新

c# - 使用 ajax 动态加载用户控件并具有 jquery 文档就绪功能

javascript - 如何从 onchange 事件外部获取 jQuery UI 自动完成值?

javascript - 如何正确链接 ajax 调用?

javascript - 你如何在两个功能之间暂停?

javascript - 使用 jQuery .load() 仅接收图像的字节码

javascript - 聊天/聊天盒系统的最佳技术是什么?普通JS,JQuery,Websocket或其他?