Javascript execute()在用户质询之前调用数据回调
我想以编程方式调用不可见的reCaptcha挑战。 根据,我编写了以下代码:Javascript execute()在用户质询之前调用数据回调,javascript,recaptcha,Javascript,Recaptcha,我想以编程方式调用不可见的reCaptcha挑战。 根据,我编写了以下代码: <html lang="en"> <head> <meta charset="UTF-8"> <title>reCaptcha test</title> <script> function onReCaptchaSubmit(token) { alert("reCaptcha chal
<html lang="en">
<head>
<meta charset="UTF-8">
<title>reCaptcha test</title>
<script>
function onReCaptchaSubmit(token) {
alert("reCaptcha challenge response:\n" + token);
}
</script>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<style>
.grecaptcha-badge {
display: none;
}
</style>
</head>
<body>
<a href="javascript:void(0);" onclick="grecaptcha.execute();">Challenge</a>
<div class="g-recaptcha"
data-sitekey="*******"
data-callback="onReCaptchaSubmit"
data-size="invisible">
</div>
</body>
</html>
雷帕查试验
函数onRecaptChasSubmit(令牌){
警报(“reCaptcha质询响应:\n”+令牌);
}
grecaptcha先生徽章{
显示:无;
}
和grecaptcha.execute()从HTML链接调用code>,以显示reCaptcha挑战弹出窗口。在大多数情况下,它运行良好。但有时,在调用grecaptcha.execute()之后
,它在不显示reCapcha弹出窗口和用户质询的情况下,回调onReCaptchaSubmit()
。
我怎样才能修好它?
提前感谢。因为recaptcha有一个过期时间,所以您必须等到您的recaptcha会话过期,或者调用
grecaptcha.reset()
在OnReCAPTChasSubmit
中,以确保每次用户单击链接时都出现用户挑战:
function onRecaptchaSubmit(token) {
/* any behavior you want */
//...
window.grecaptcha.reset();
}
您希望每次调用
grecaptcha.execute()
时,invisible reCaptcha都会显示用户质询,但它不是这样工作的。以我的经验,只有当它怀疑你时,它才会显示出挑战。如果谷歌确定你是人类,它将跳过显示用户质询并继续回调。你可能不想使用真正的sitekey。@ColeCm,谢谢,我删除了它。我做了你的解决方法,似乎问题已经解决,但经过几次测试,我意识到问题没有解决。你认为,这是一种重新捕获行为还是其他什么?这也是我的经验-隐藏的验证码只会挑战你,如果它认为你是一个机器人。