Ajax 与 Recaptcha 一起使用时调用无法正常工作
Ajax call not working properly when used with Recaptcha
我在我的网站上同时使用 PHP 和 AJAX 从 JSON URL 中获取数据并将其显示在网页上。当我在没有实现 recaptcha 的情况下使用它时,它工作正常但是当我集成 Google 的 Recaptcha 时,只有在每次验证码谜题被解决两次时才会显示结果。我不确定错误到底在哪里,我什至尝试实现自定义验证码,在那种情况下也是一样的。这是带有 recaptcha 的代码,
验证码和 Ajax 代码段:
<?php
if ($resp != null && $resp->success): ?>
echo"hi";
<script>
$(document).ready(function(){
$("#submit").click(function(){
$.post("retrieve_train_between_stations.php", $("#get_train_running").serialize(), function(response) {
$("#success").html(response);
});
return false;
});
});
</script>
<?php
else:
echo "Failed";
?>
这部分应该移到 retrieve_train_between_stations.php
。
require_once "recaptchalib.php";
// your secret key
$secret = "My secret key";
// check secret key
$reCaptcha = new ReCaptcha($secret);
$resp = false;
if (isset($_POST["g-recaptcha-response"])) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
if ($resp) {
//display the record
} else {
echo 'Recaptcha can not be verified.';
}
应删除 if/else 并阻止脚本的默认事件
<script>
$(document).ready(function(){
$("#submit").click(function(event){
event.preventDefault();
$.post("retrieve_train_between_stations.php", $("#get_train_running").serialize(), function(response) {
$("#success").html(response);
});
return false;
});
});
</script>
我在我的网站上同时使用 PHP 和 AJAX 从 JSON URL 中获取数据并将其显示在网页上。当我在没有实现 recaptcha 的情况下使用它时,它工作正常但是当我集成 Google 的 Recaptcha 时,只有在每次验证码谜题被解决两次时才会显示结果。我不确定错误到底在哪里,我什至尝试实现自定义验证码,在那种情况下也是一样的。这是带有 recaptcha 的代码,
验证码和 Ajax 代码段:
<?php
if ($resp != null && $resp->success): ?>
echo"hi";
<script>
$(document).ready(function(){
$("#submit").click(function(){
$.post("retrieve_train_between_stations.php", $("#get_train_running").serialize(), function(response) {
$("#success").html(response);
});
return false;
});
});
</script>
<?php
else:
echo "Failed";
?>
这部分应该移到 retrieve_train_between_stations.php
。
require_once "recaptchalib.php";
// your secret key
$secret = "My secret key";
// check secret key
$reCaptcha = new ReCaptcha($secret);
$resp = false;
if (isset($_POST["g-recaptcha-response"])) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
if ($resp) {
//display the record
} else {
echo 'Recaptcha can not be verified.';
}
应删除 if/else 并阻止脚本的默认事件
<script>
$(document).ready(function(){
$("#submit").click(function(event){
event.preventDefault();
$.post("retrieve_train_between_stations.php", $("#get_train_running").serialize(), function(response) {
$("#success").html(response);
});
return false;
});
});
</script>