2016-08-01 6 views
0

私は、この記事の冒頭の段落で少し混乱しています:https://developers.google.com/recaptcha/docs/verifyGoogleのreCAPTCHAの検証

あなたは(つまり `データ・コールバック」属性)を検証するために第三の方法を使用する場合、これは何がありますことを意味していないんバックエンドからのhttps://www.google.com/recaptcha/api/siteverifyへのPOSTの必要性が長くなりますか?これは本質的に100%のクライアント側のキャプチャですか?

答えて

0

これは、ajaxを使用して投稿し、成功したかどうかにかかわらずコールバックを取得したときに、サブミット/投稿などの操作を許可するJavascript機能を使用できることを意味します。コールバックを使用してログインボタンを送信できるようにします。完了していなければ、ボタンは無効のままです。成功したかどうかを確認できるように、チャレンジをGoogleに提出する必要があります。ここに簡単な例があります。

<div class="g-recaptcha" id="login" data-callback="captcha_filled" 
      data-expired-callback="captcha_expired" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></div> 

function captcha_filled() { 
    $("#submitLogin").prop('disabled', false); 
} 
+0

しかし、 'grecaptcha.getResponse()'を実行しても同じ結果が得られませんか?私が知る限り、ユーザーがcaptchaをチェックするのを忘れたり、チャレンジに失敗した場合、 'grecaptcha.getResponse()'は値を持ちません。その場合、自分のAJAX投稿を使用するポイントは何ですか? – faridghar

+0

私はテストをしたし、あなたが正しいと思われます。チャレンジが完了せず、 'grecaptcha.getResponse()'が呼び出された場合、それはnullを返し、成功すれば値を返します。あなたの質問では、私は混乱しているデータコールバックとして3番目の方法を言及しますが、それはこの方法のいずれかをやっているものではありません。上記の呼び出しを使用してチャレンジを検証することができますが、データコールバックは完了した時点であらゆるタイプの関数を実行するだけです。 [Javascript API](https://developers.google.com/recaptcha/docs/display#js_api)に関するさらに詳しい情報があります。 – Ryan89

関連する問題