javascript 我想知道为什么我总是在g-recaptcha-response post request中得到一个空值

q9rjltbz  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(101)
function onClick() {
        grecaptcha.ready(function() {
          grecaptcha.execute('Site-Key').then((token) => {
            document.getElementById("g-recaptcha-response").value = token;
          });
        });
      }

当我运行这段代码时,我得到一个空值,不知道为什么。
我尝试了很多方法,尝试获取一个返回令牌值,并将其作为.value = token赋值给我的输入;我还尝试了prepend()、setAttribute()等方法。我很绝望,因为我正在尝试实现reCaptcha v3。我的代码运行得很好,突然就停止工作了。当我控制台日志令牌时,我确实得到了响应,当我复制所说的日志并将其作为值附加到隐藏输入时,它都可以工作。所以,我不知道为什么这段代码给我一个空值。
当我这样运行代码时

grecaptcha.ready(function() {
          grecaptcha.execute('Site-Key').then((token) => {
            document.getElementById("g-recaptcha-response").value = token;
          });
        });

它在我的本地主机上工作,但在我的实际网站上不工作。我也试过

let captcha = () => {
  grecaptcha.ready(function() {
    grecaptcha.execute('Site-Key').then((token) => {
    document.getElementById('g-recaptcha-response').value = token;
    })
  })
} 
captcha();
setInterval(()=>{captcha();}, 110000)

这也不起作用:(

n6lpvg4x

n6lpvg4x1#

在执行onClick()函数之前,请确认reCAPTCHA脚本已正确加载。

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

reCAPTCHA响应令牌应分配给此输入字段的value属性。

<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" value="">

相关问题