Google reCAPTCHA не работает в. NET WebForms - PullRequest
0 голосов
/ 17 апреля 2020

Попытка включить Google reCAPTCHA на одну из моих веб-страниц, но я получаю сообщение об ошибке (в инструментах разработчика Chrome):

Uncaught (в обещании) Ошибка: отсутствуют обязательные параметры: sitekey

в новом dz (recaptcha__en. js: 272)

в новом ГБ (recaptcha__en. js: 511)

в Object.Rw [как визуализация] (recaptcha__en. js: 509)

на renderRecaptcha (recaptchatest: 93)

Вот мой код aspx-дизайна;

<div id="ReCaptchContainer"></div> 
            <asp:Label ID="lblMEssage" runat="server" clientidmode="static"></asp:Label>
        <br />  
            <asp:Button type="button" ID="btnSubmit" runat="server" Text="Submit" />

Вот мои JS и jQuery :

<script src="https://www.google.com/recaptcha/api.js?onload=renderRecaptcha&render=explicit" async defer></script>

    <script  src="https://code.jquery.com/jquery-3.2.1.min.js"></script>  

    <script type="text/javascript">  
        var your_site_key = '<%= ConfigurationManager.AppSettings["6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX"]%>';  
        var renderRecaptcha = function () {  
            grecaptcha.render('ReCaptchContainer', {  
                'sitekey': your_site_key,  
                'callback': reCaptchaCallback,  
                theme: 'light', //light or dark    
                type: 'image',// image or audio    
                size: 'normal'//normal or compact    
            });  
        };  

        var reCaptchaCallback = function (response) {  
            if (response !== '') {  
                jQuery('#lblMessage').css('color', 'green').html('Success');  
            }  
        };  

        jQuery('button[type="button"]').click(function(e) {  
            var message = 'Please checck the checkbox';  
            if (typeof (grecaptcha) != 'undefined') {  
                var response = grecaptcha.getResponse();  
                (response.length === 0) ? (message = 'Captcha verification failed') : (message = 'Success!');  
            }  
            jQuery('#lblMessage').html(message);  
            jQuery('#lblMessage').css('color', (message.toLowerCase() == 'success!') ? "green" : "red");  
        });  

    </script>

Примечание. Я изменил последние 9 цифр моего ключа API.

Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

0 голосов
/ 17 апреля 2020

Я почти уверен, что ключ, который вы используете для настроек приложения, неверен:

var your_site_key = '<%= ConfigurationManager.AppSettings["6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX"]%>';

Возможно, это должно быть что-то вроде ConfigurationManager.AppSettings["your-key"], а возвращаемое значение должно быть "6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX"?

ОБНОВЛЕНИЕ: ConfigurationManager.AppSettings["your-key"] используется для загрузки конфигурации из раздела web.config <appSettings>. Если вы не используете настройки приложения, все, что вам нужно, это добавить свой ключ напрямую:

var your_site_key = "6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX";
...