jQuery:使用AJAX验证Recaptcha'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery:使用AJAX验证Recaptcha'相关的知识,希望对你有一定的参考价值。
I was asked to add Recaptcha' to an already existing form. I didn't want to interfere with the code so I decided to search for some sort of AJAX solution. Here's my implementation of DarkSideOfTheCarton.com. This form needs to have a form with
<script type="text/javascript" charset="utf-8" src="/location/to/jquery.1.3.1.min.js"></script> <script type="text/javascript" charset="utf-8"> //Validate the Recaptcha' Before continuing with POST ACTION function validateCaptcha() { challengeField = $("input#recaptcha_challenge_field").val(); responseField = $("input#recaptcha_response_field").val(); //console.log(challengeField); //console.log(responseField); //return false; var html = $.ajax({ type: "POST", url: "/location/to/ajax.recaptcha.php", data: "recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField, async: false }).responseText; //console.log( html ); if(html == "success") { //Add the Action to the Form $("form").attr("action", "http://action/to/the/form_handler"); //Indicate a Successful Captcha $("#captchaStatus").html("Success!"); // Uncomment the following line in your application return true; } else { $("#captchaStatus").html("The security code you entered did not match. Please try again."); Recaptcha.reload(); return false; } } </script> <?php /* ** @Title: Recaptcha Validation ** @Date Modified: 6/01/09 ** Instructions: This code lives within the form. Generally above the <SUBMIT> button */ //A.This div notifies the user whether the Recaptcha was Successful or not echo " " . '<div id="captchaStatus" style="color:red;font-size:12px"></div>'; //B. This script provides Recaptcha with a Theme echo " " .'<script type="text/javascript" charset="utf-8">'; echo " " .'var RecaptchaOptions = { theme: "clean" };'; echo " " . '</script>' . " "; //C. Require the Recaptcha Library require_once('/location/to/recaptchalib.php'); //D. READ ME! $publickey = "RECAPTCHA_PUBLIC_KEY" recaptcha_get_html( $publickey ); ?> <?php /* ** @Title: Recaptcha Validation ** @Date Modified: 6/01/09 ** Instructions: Place this code in a file called "ajax.recaptcha.php" */ //A. Load the Recaptcha Libary require_once('/location/to/recaptchalib.php'); $privatekey = "RECAPTCHA_PRIVATE_KEY"; //B. Recaptcha Looks for the POST to confirm $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); //C. If if the User's authentication is valid, echo "success" to the Ajax if ($resp->is_valid) { echo "success"; } else { "(reCAPTCHA said: " . $resp->error . ")"); } ?>
以上是关于jQuery:使用AJAX验证Recaptcha'的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net MVC Recaptcha Jquery Ajax 问题
通过 jQuery + Ajax 将带有 Google reCaptcha v2 令牌的图像文件发送到 PHP
如何修复谷歌不可见 reCAPTCHA 验证后未提交的 Ajax 表单