Угловая рекапча v3, код показывает ошибку, не в состоянии выполнить функцию - PullRequest
0 голосов
/ 14 февраля 2019

Я использую recaptcha v3 с Angular и сталкиваюсь с ошибкой выполнения.

click(){
  this.grecaptcha.execute();
  this.grecaptcha.ready('6LfwjpEUAAAAAHTtLNdC42zZZ64LM8nPqXf47vuZ', { action: 'stackblitz' })
  .then(function (token) {
      // Verify the token on the server.
      console.log(token);
  });
}

пожалуйста, проверьте консоль моей ссылки stackblitz

stackblitz

Я использовал приведенный ниже вопрос стека, но это не помогло мне

reCAPTCHA v3 не работает под углом 6 - ошибка при выполнении .


ОБНОВЛЕНИЕ:

Я получаю ошибку, ОШИБКА Ошибка: не удается прочитать свойство 'execute' из неопределенного.

в HTML Я пытался

<script src="https://www.google.com/recaptcha/api.js?render=6LfwjpEUAAAAAHTtLNdC42zZZ64LM8nPqXf47vuZ"></script>

в TS, при отправкеЯ звоню

declare const grecaptcha: any;
onsubmit(){
    this.grecaptcha.ready(() => {
     {
        this.grecaptcha.execute('6LfwjpEUAAAAAHTtLNdC42zZZ64LM8nPqXf47vuZ', {action: 'information'}).then(function(token) {
           console.log(token);
        });
     }

})}

1 Ответ

0 голосов
/ 14 февраля 2019

Первое замечание, вы должны опубликовать свой код, так как ссылки, как правило, умирают.Во-вторых, при проверке документации говорится, что она называется так:

<script>
  grecaptcha.ready(function() {
    grecaptcha.execute('site_key', {action: 'homepage'}).then(function(token) {
       // ...
    });
  });
</script>

Так что сначала вы должны вызвать grecaptcha.ready, до execute, так, как ввопрос, который вы связали, объявите grecaptcha вне компонента и вызовите функцию в вашем компоненте:

declare const grecaptcha: any;

// ...

grecaptcha.ready(() => {
  grecaptcha.execute('sitekey', { action: 'test' }).then((token) => {
    console.log(token);
  });
});

Также, когда вы смотрите на grecaptcha, кажется, что вы используете какой-то тестовый ключ, в v 3 выНужно создать свой собственный ключ и добавить домен в отличие от v 2, где вы можете попробовать тестовый ключ, предоставленный Google.

Если вы разрабатываете на localhost, добавьте http://127.0.0.1/ в качестве домена при регистрации, чтобы получить ключи.Из-за этого ограничения я не могу «исправить» предоставленный вами стек-блиц.

Я пробовал приведенный выше код в тестовом проекте, и он прекрасно работал для меня:)

...