我有一个基于AJAX的注册页面,可以在客户端和服务器上进行验证。
当服务器端验证失败时,AJAX会将错误返回到屏幕并尝试使用grecaptcha.reset()重置recaptcha。
重置recaptcha似乎工作正常,客户能够重新调整"我不是机器人"框然后继续,但在重新设置recaptcha之后,页面上的滚动操作会导致大量的TypeError:a recaptcha_en.js中的a javascript错误。
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);
}
}
}
});
答案 0 :(得分:0)
有同样的问题,我发现有用的一切是recapthca试图加载旧版本或其他东西(我无法重现,但在某些情况下我得到了另一个版本的验证码)...和另一个相关的想法模态窗口我的recaptcha显示相同的行为。
BTW:不仅滚动事件触发器错误垃圾邮件,而且任何窗口也会重新调整大小。
我希望其中任何一个都能提供帮助。