1

在这个 reCAPTCHA v3 示例中,g-recaptcha-response 文本区域在表单之外...

<form method="post">
    <input type="text" name="name" placeholder="Name">
    <input type="text" name="email" placeholder="E-Mail">

    <script type="text/javascript">
        var onloadCallback = function() {
            console.log('onloadCallback');

            grecaptcha.execute(
                "SITEKEY",
                {action: "homepage"})
                .then(function(token) {
                        console.log('verifyCallback')
                        console.log(token);
                    }
                );

        };
    </script>

    <script src="https://www.google.com/recaptcha/api.js?render=SITEKEY&onload=onloadCallback"></script>

    <input type="submit" value="Send">
</form>

所以没有$_POST["g-recaptcha-response"]

在表单标签内提供 textarea 需要进行哪些调整?

4

1 回答 1

0

您需要接收响应的表单中的隐藏输入,您还需要将令牌设置为隐藏输入值

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

document.getElementById('g-recaptcha-response').value = token;

但是,我在 Magento 2 中的 recaptcha v.3 实现也遇到了问题。

于 2018-11-26T09:24:31.387 回答