Как перенаправить после подтверждения reCAPTCHA? - PullRequest
0 голосов
/ 19 апреля 2019

Я использую Google reCAPTCHA на моем сайте. Если капча прошла успешно, я хочу перенаправить на другой сайт.

Код, который я использовал:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script type="text/javascript">
  if (grecaptcha.getResponse() == "success") {
    function Redirect() {
      window.location = "example.com";
    }
    document.write("You will be
      redirected to a new page in 5 seconds ");      setTimeout('Redirect()',
      1000);
  }
  } else {
    alert("You can't proceed!");
</script>

<body>
  <div data-type="image" class="g-recaptcha" data-sitekey="public site key"></div>
</body>

Но это не работает.

Отредактировано

Я просто плохо понимаю JavaScript. Вот почему я спрашивал и до сих пор не понимаю этого. Что это значит и что мне с этим делать. https://www.google.com/recaptcha/api/siteverify Можете ли вы привести пример полного кода

1 Ответ

0 голосов
/ 19 апреля 2019

Во-первых, если вы хотите перенаправить, используйте window.location.href = "example.com", а во-вторых, вы показываете пользователю, что страница будет перенаправлена ​​через 5 секунд, но вы устанавливаете время только в 1 секунду, а третье не вызывает функция в setTimeout только передает функцию как обратный вызов к ней. И, пожалуйста, напишите весь этот код как обратный вызов recaptcha, чтобы его можно было вызывать при проверке recaptcha с сервера.

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script type="text/javascript">
  if (grecaptcha.getResponse() == "success") {
    function Redirect() {
      window.location.href = "example.com"; // Correct here
    }
    document.write("You will be redirected to a new page in 5 seconds ");      
      setTimeout(Redirect,5000); // Correct here
  }
  else alert("You can't proceed!");
</script>

<body>
  <div data-type="image" class="g-recaptcha" data-sitekey="public site key"></div>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...