【发布时间】:2021-04-05 20:26:08
【问题描述】:
我无法让 reCaptcha 在提交表单时正常工作,在这种情况下,我会通过客户端验证和 API 调用来处理错误状态。这是因为我需要在用户更正表单后重新提交表单,同时让 API 提供表单上存在错误的数据——每次都需要一个新的响应令牌。
我已经验证了我的 reCaptcha 控制台中列出的 site-key 和 secret-key 以及 domain。
这里的问题是,在初始提交后,reCaptcha 会间歇性地给我一个警报,说它无法通过我正在执行的回调函数连接到 reCaptcha。
这是我通过data-callback提交表单时执行的代码
let correctCaptcha = function(response) {
// Fire Post Route
window.submitUserAPIForm(response);
// Reset the reCaptcha token due to not allowing duplicate tokens used in the same instance -- to re-submit form
grecaptcha.reset();
};
<form>
<!-- MY FORM INPUT VALUES HERE -->
<button class="g-recaptcha" data-sitekey="MY_SITE_KEY" data- callback="correctCaptcha">
<p>Start My Free Trial Now</p>
</button>
</form>
我确实将MY_SITE_KEY 设置为控制台提供的密钥,并且我假设罪魁祸首是在这个特定的调用中,而不是我的 API 调用和客户端验证的整体。
另外,请注意我正在使用这个:
.grecaptcha-badge {
visibility: hidden;
}
从页面中隐藏徽章
有时似乎一切正常,但有时会出现连接问题,导致用户刷新页面或完全卡住。
对此的任何见解将不胜感激!
【问题讨论】:
标签: javascript validation callback recaptcha form-submit