[javascript] JavaScript를 사용하여 ReCaptcha를 다시로드하는 방법?

오류가 발생할 때마다 (즉, 이미 사용중인 사용자 이름) 언제든지 Recaptcha 이미지를 새로 고치도록 AJAX에 가입 양식이 있습니다.

JavaScript를 사용하여 다시로드하기 위해 ReCaptcha와 호환되는 코드를 찾고 있습니다.



답변

중요 사항 : reCAPTCHA API 버전 1.0은 더 이상 지원되지 않습니다. 버전 2.0으로 업그레이드하십시오.

grecaptcha.reset ()을 사용할 수 있습니다 . 보안 문자를 재설정합니다.

출처 : https://developers.google.com/recaptcha/docs/verify#api-request


답변

reCaptcha v2의 경우 다음을 사용하십시오.

grecaptcha.reset();

reCaptcha v1을 사용하는 경우 ( 아마도 아닙니다 ) :

Recaptcha.reload();

에 이미로드 된 Recaptcha가있는 경우 수행됩니다 window.

(아래 @SebiH의 의견에 따라 업데이트되었습니다.)


답변

버전 1을 사용중인 경우

Recaptcha.reload();

버전 2를 사용중인 경우

grecaptcha.reset();


답변

grecaptcha.reset(opt_widget_id)

reCAPTCHA 위젯을 재설정합니다. 선택적 위젯 ID를 전달할 수 있습니다. 그렇지 않으면 함수는 작성된 첫 번째 위젯을 재설정합니다. (Google 웹 페이지에서)


답변

이 시도

<script type="text/javascript" src="//www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
          function showRecaptcha() {
            Recaptcha.create("YOURPUBLICKEY", 'captchadiv', {
              theme: 'red',
              callback: Recaptcha.focus_response_field
            });
          }
 </script>

<div id="captchadiv"></div>

showRecaptcha를 호출하면 captchadiv에 새 recaptcha 인스턴스가 채워집니다.


답변

또는 새로 고침 버튼을 클릭하여 시뮬레이션 할 수도 있습니다.

// If recaptcha object exists, refresh it
    if (typeof Recaptcha != "undefined") {
      jQuery('#recaptcha_reload').click();
    }


답변

AngularJS 사용자의 경우 :

$window.grecaptcha.reset();