2016-08-01 10 views

Antwort

0

Es bedeutet, dass Sie mit Ajax schreiben würde und wenn Sie Ihren Rückruf, wenn seine erfolgreiche bekommen oder nicht, dann können Sie eine Javascript-Funktion müssen die einreichen erlauben/Post oder was auch immer Aktion, die Sie tun müssen. Ich benutze den Callback, um dem Login-Button das Senden zu erlauben und wenn er nicht abgeschlossen wurde, bleibt der Button deaktiviert. Sie müssen Ihre Challenge dennoch an Google senden, damit sie überprüfen können, ob sie erfolgreich ist. Hier ist ein vereinfachtes Beispiel.

<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

Aber würde nicht nur 'grecaptcha.getResponse()' ausführen das gleiche? Soweit ich das beurteilen kann, wenn der Benutzer vergisst, das Captcha zu überprüfen oder die Herausforderung scheitert, dann 'grecaptcha.getResponse()' keinen Wert hat. Was bringt es in diesem Fall, einen eigenen AJAX-Post zu verwenden? – faridghar

+0

Ich habe einen Test gemacht und es scheint, dass Sie Recht haben. Wenn die Abfrage nicht abgeschlossen ist und 'grecaptcha.getResponse()' aufgerufen wird, wird null zurückgegeben und bei Erfolg ein Wert zurückgegeben. In Ihrer Frage erwähnen Sie die dritte Methode als Daten-Rückruf, was mich verwirrt hat, aber das ist es auch nicht, was diese Methode tut. Sie können den obigen Aufruf verwenden, um Ihre Abfrage zu überprüfen, aber der Datenrückruf dient nur dazu, alle Arten von Funktionen auszuführen, wenn sie abgeschlossen sind. Hier sind einige weitere Informationen über die [Javascript-API] (https://developers.google.com/recaptcha/docs/display#js_api). – Ryan89