0
我對這篇文章的首段有點糊塗:這https://developers.google.com/recaptcha/docs/verify谷歌驗證碼驗證
當您使用第三種方法來驗證(即`數據回調」屬性),也意味着,有沒有需要更長時間從後端POST到https://www.google.com/recaptcha/api/siteverify?這基本上是一個100%的客戶端驗證碼?
我對這篇文章的首段有點糊塗:這https://developers.google.com/recaptcha/docs/verify谷歌驗證碼驗證
當您使用第三種方法來驗證(即`數據回調」屬性),也意味着,有沒有需要更長時間從後端POST到https://www.google.com/recaptcha/api/siteverify?這基本上是一個100%的客戶端驗證碼?
這意味着你將發佈與阿賈克斯,如果其成功與否,當你得到你的回調,那麼你可以有一個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);
}
但不會執行'grecaptcha.getResponse()'實現相同?據我所知,如果用戶忘記檢查驗證碼或未能通過挑戰,那麼'grecaptcha.getResponse()'將不會有值。在這種情況下,使用自己的AJAX文章有什麼意義? – faridghar
我做了一個測試,看起來你是對的。如果挑戰未完成並調用'grecaptcha.getResponse()',它將返回null,如果成功,它將返回一個值。在你的問題中,你提到了第三種方法作爲數據回調,這讓我感到困惑,但這不是這種方法所做的。您可以使用上述調用來驗證您的挑戰,但數據回調只是在完成時執行任何類型的功能。以下是關於[Javascript API](https://developers.google.com/recaptcha/docs/display#js_api)的更多信息。 – Ryan89