让reCaptcha使用jQuery在Ajax上工作
我有一个表单,可以使用Ajax进行验证和发布,或者更具体地说,使用让reCaptcha使用jQuery在Ajax上工作,jquery,ajax,security,recaptcha,Jquery,Ajax,Security,Recaptcha,我有一个表单,可以使用Ajax进行验证和发布,或者更具体地说,使用$.post() 在某一点上,有一个重演。当我没有使用$.post()而是以旧式方式发布(页面刷新)时,此表单运行良好,仅供参考 转换表单需要我将所有的$\u POST更改为$\u REQUEST。然而,这并不能解决reCaptcha问题,所以我将其保留原样。以下是registerPost.PHP中的reCaptcha PHP代码: require_once('recaptchalib.php'); $privatekey
$.post()
在某一点上,有一个重演。当我没有使用$.post()
而是以旧式方式发布(页面刷新)时,此表单运行良好,仅供参考
转换表单需要我将所有的$\u POST
更改为$\u REQUEST
。然而,这并不能解决reCaptcha问题,所以我将其保留原样。以下是registerPost.PHP中的reCaptcha PHP代码:
require_once('recaptchalib.php');
$privatekey = "dropbeatsnotbombs";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
echo "Error";
}
else {
//post form
}
以下是处理表单过帐的jQuery:
$.post('php/registerPost.php', $('#registerPost').serialize(), function(data){
if(data == "Error")
{
$('#caErr').show();
}
else
{
window.location.replace("//main page");
}
});
注意:reCaptcha似乎返回为false,因为当所有内容都正确填写时,表单将不会提交
我想做的是,如果reCaptcha输入错误,则显示一个错误,如果输入正确,则显示post,所有这些都是异步的
有什么帮助吗?嗯。我需要阅读$.post()的API文档,但我的第一个猜测是,由于表单没有真正提交,所以没有填充$\u post数组,因此当您使用诸如
$\u post[“recaptcha\u challenge\u field”]
之类的值时,它只是一个空字段。再一次,我需要去核实一下,但这是我的直觉
编辑:
看来我错了。我将您所拥有的与API和我所拥有的旧脚本进行了比较,您所做的应该很好。我看到的唯一区别是您将此作为数据传递:
$('#registerPost').serialize()
鉴于我的脚本传递了以下信息:
$('#form').serializeArray()
可能就这么简单…+1“dropbeatsnotbombs”?很好……:)你确定表格中的所有内容都有效吗??