gpt4 book ai didi

jquery - 使用 jQuery 在 Ajax 上使用 reCaptcha

转载 作者:行者123 更新时间:2023-12-01 01:28:56 25 4
gpt4 key购买 nike

我有一个使用 Ajax 验证和发布的表单,或者更具体地说,使用 $.post()

在某一时刻,有一个 reCaptcha。当我没有使用 $.post() 而是以老式方式发布(通过页面刷新)时,此表单工作正常,仅供引用。

转换表单需要我将所有 $_POST 更改为 $_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");
}
});

Note: the reCaptcha seems to return as false, since the form will not submit when everything is filled in correctly.

我想要做的是,如果 reCaptcha 输入错误,则显示错误;如果输入正确,则发布错误,所有操作都是异步的。

有什么帮助吗?

最佳答案

嗯。我需要去阅读 $.post() 的 API 文档,但我的第一个猜测是,由于表单没有真正提交,所以 $_POST 数组没有被填充,所以当你使用像 $_POST[ "recaptcha_challenge_field"],它只是一个空字段。再说一次,我需要去验证一下,但这是我的预感。

编辑:

看来我错了。我将您所拥有的内容与 API 和我拥有的旧脚本进行了比较,您正在做的事情应该没问题。我看到的唯一区别是您将其作为数据传递:

$('#registerPost').serialize()

而我的脚本正在传递这个:

$('#form').serializeArray()

事情可能就这么简单......

关于jquery - 使用 jQuery 在 Ajax 上使用 reCaptcha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5468220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com