上传大文件时,reCatpcha“超时或复制”

时间:2019-07-19 16:10:12

标签: ajax timeout recaptcha invisible-recaptcha

我有一个用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响应已经过期。

有人可以引导我吗?

谢谢。

0 个答案:

没有答案