Невидимая рекапча видна - PullRequest
       7

Невидимая рекапча видна

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

У меня есть невидимая рекапча, и она работает, но она полностью видна всем пользователям.И я имею в виду это:

enter image description here

И моя консоль говорит:

Uncaught Error: Missing required parameters: sitekey
at new jl (VM19165 recaptcha__ru.js:575)
at new $Y (VM19165 recaptcha__ru.js:584)
at mt (VM19165 recaptcha__ru.js:599)
at VM19165 recaptcha__ru.js:590
at Array.forEach (<anonymous>)
at hE (VM19165 recaptcha__ru.js:590)
at rI (VM19165 recaptcha__ru.js:593)
at ib (VM19165 recaptcha__ru.js:585)
at VM19165 recaptcha__ru.js:600
at VM19165 recaptcha__ru.js:620

Мой код js:

function onSubmit(token) {
alert('thanks ' + document.getElementById('fields[Email]').value);
}

function validate(event) {
event.preventDefault();
grecaptcha.execute();
}

function onload() {
var element = document.getElementById('submit');
element.onclick = validate;
}


<script src="https://www.google.com/recaptcha/api.js" async defer></script>

И html:

    <input type="text" id="fields[Email]" value="" name="fields[Email]" class="add_field" placeholder="Email" />
<div id='recaptcha' class="g-recaptcha" data-sitekey="6LcaXXXXXXXXXXXXXXXcTqa9o5k"  data-callback="onSubmit" data-size="invisible">
  </div>
</div>
</div>
<div class="col-bs">   
  <button type='submit' id='submit' class="sub-rassilka" >SUBMIT</button>
  </div>

В чем проблема, что я пропустил?

UPD: я изменил строку API на эту, но у меня такая же ошибка в консолии recapcha все еще показывает себя

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

1 Ответ

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

Когда вы получаете API с этой строкой:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

Вы не передаете свой ключ сайта, как:

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

Ссылка: reCAPTCHA v3

Вы можете получить ключ своего сайта здесь


Когда вы сделаете это:

grecaptcha.execute()

вам также нужно будет передать ключ сайта, например:

  grecaptcha.execute('site_key', {action: 'homepage'}).then(function(token) {
     ...
  });

источник

...