我有一个用Recaptcha由Ajax发送的表格。
一切正常,直到文件被上传。 recaptcha给我的错误是“超时或重复”。
我了解到,重新验证会在2分钟后过期,并且如果您上传的大文件超出了此时间范围,那么使用大文件总是会出现重新验证错误。
我想我的表单会发生以下情况:加载页面会为此类型的Recaptcha生成答案。
<input type="hidden" name="recaptcha_response"
id="recaptchaResponse" value="03AOLTBLQYT8Kkmq_L-
euKLCx0il5A7Z7fK_UQH29M7k17skZAY8KMutwwXJPxYmc8ZVdw-
1twGUNvVF-2ksmiX-cFUyxy-
lrMaeXoj16hqVfbMiZ19kDTnisoaNuWcKHS7J9bOqhn9YR2YU2
dNL2JNS7B3gL5AZWoDaUrHmOoJVczMJnTqTdmT2_8VUgHc3MC
fQ8MQok_K9LTGFzxzih4oHfd9V0wL6ZQDI4eDY4MGpOXQhBWWr6epRs9ZixtL-
mqmjEJcV9Kd9aHVxYHRbGOdXYa3eC9MdVouAj22V-oZc3E48ZkNQvZ6vHPME5ieAYJXLro671m1aHJ">
万一用户填写表格的时间太长,我添加了一个设置的间隔,每30秒更新一次。
<script>
function grecaptcha_load() {
//Formulario y reCaptcha
grecaptcha.ready(function () {
grecaptcha.execute('YOUR_SITE_KEY', { action: 'contact' }).then(function (token) {
var recaptchaResponse = document.getElementById('recaptchaResponse');
recaptchaResponse.value = token;
});
});
console.log('recaptcha cargado');
}
setInterval(function(){ grecaptcha_load(); }, 30 * 1000 );
</script>
到目前为止,一切都很好。它适用于轻量文件,但适用于重量很大的文件...
当您按下发送按钮时,它将从表单中获取所有数据,以及“ recaptcha_response”的值并开始上传文件,完成上传后,它将发送数据和文件。
那时,由于已经超过两分钟,recaptcha响应已经过期。
有人可以引导我吗?
谢谢。