reCAPTCHA v3 не работает угловая 6 - ошибка выполнения - PullRequest
0 голосов
/ 13 декабря 2018

Я внедряю Google reCAPTCHA v3 с Angular 6.

<script src='https://www.google.com/recaptcha/api.js?render=KEY'></script>

Добавлен скрипт в index.html

В моем AppComponent,

constructor(
    @Inject(DOCUMENT) private document: any
) {
    this.grecaptcha = this.document.grecaptcha;
}

и когда янажмите кнопку отправки формы,

this.grecaptcha.execute('KEY', { action: 'action_name' })
  .then(function (token) {
      // Verify the token on the server.
      console.log(token);
});

Но,

ОШИБКА TypeError: Невозможно прочитать свойство 'execute' из неопределенного

1 Ответ

0 голосов
/ 13 декабря 2018

объект должен быть доступен из окна, поэтому все, что вам нужно, это объявить его поверх вашего файла ts:

declare const grecaptcha: any;

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

grecaptcha.execute('KEY', { action: 'action_name' })
  .then(function (token) {
      // Verify the token on the server.
      console.log(token);
})

Вы также можете попытаться установить наборы @types/grecaptcha, чтобы получить подсказку по типу, чтобы сделать вашу жизнь немного проще

...