如何在完成reCAPTCHA验证后自动跳转至下一页(无需提交按钮)
reCAPTCHA验证成功后自动跳转的正确实现
你的代码无法正常运行主要有三个核心问题:
- 页面加载时就立刻执行了验证判断,此时用户还没操作验证码,逻辑时机完全错误
grecaptcha.getResponse()返回的是验证成功后的令牌字符串,不是"success",判断条件不成立- 没有利用reCAPTCHA官方提供的回调机制来监听验证成功事件
以下是修正后的完整代码:
<script src="https://www.google.com/recaptcha/api.js" async defer></script> <script type="text/javascript"> // 定义验证成功后的回调函数 function onCaptchaSuccess() { // 直接跳转,如需延迟跳转可改为:setTimeout(() => { window.location.href = "https://example.com"; }, 5000); window.location.href = "https://example.com"; } </script> <!-- 给reCAPTCHA容器添加data-callback属性,指定验证成功后触发的函数 --> <div data-type="image" class="g-recaptcha" data-sitekey="你的站点密钥" data-callback="onCaptchaSuccess"></div>
关键说明:
data-callback="onCaptchaSuccess":这是reCAPTCHA官方指定的监听验证成功的方式,用户完成验证后会自动触发该函数- 跳转地址必须带上完整协议(如https://),否则会被识别为当前域名下的相对路径
- 若需要延迟跳转,在回调函数内用
setTimeout包裹跳转逻辑即可
内容的提问来源于stack exchange,提问作者Tracie
相关产品推荐
相关产品推荐

