Google Recaptcha V2 响应错误

Google Recaptcha V2 response error

我正在尝试使用服务器端代码 implementation.Now 实施 Google Recaptcha V2 当我尝试发送时 g-recaptcha-response 我收到类似 ReferenceError: g is not defineddata: JSON.stringify(g-recaptcha-response), 的错误以及何时我没有发送这个参数我在服务器端得到 Not defined error code.Here 是我的客户端代码使用 AJAX..

    $(document).ready(function () {

        $('#Captcha').click(function () {

            $.ajax({
                type: 'POST',
                url: 'http://localhost:64132/ValidateCaptcha',
                data: JSON.stringify(g-recaptcha-response),
                contentType: "application/json; charset=utf-8",
                dataType: 'json',  // Set response datatype as JSON
                success: function (data) {
                    console.log(data);
                    if (data = true) {
                        $("#lblmsg").text("Validation Success!!");
                    } else {

                        $("#lblmsg").text("Oops!! Validation Failed!! Please Try Again");
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Error");
                }
            });

        });

    });

请帮我解决并实施。

参见 docs 如何验证 g-recaptcha-responce。实际上它是文本区域字段,所以在 jquery 中你可以将其命名为 $('#g-recaptcha-response').val()

所以在客户端:

var response = $('#g-recaptcha-response').val();
$.ajax({
            type: 'POST',
            url: 'http://localhost:64132/ValidateCaptcha',
            dataType: 'json',
            data: { response: response },
            ... 

看我的post就可以了。

还有一些

在我看来,你做了一件棘手的事情: 立即在 reCaptcha 上单击您发出 xhr(jquery ajax 请求):

$('#Captcha').click(function () { $.ajax({...})

然而,google api 可能还没有评估机器人人的线索,也没有返回响应。因此,当您调用 xhr 时,客户端不会出现 g-recaptcha-response

最好等到(超时)直到 $('#g-recaptcha-response').val() <> '',然后将 xhr 发送到 veryfy 站点。