在使用Chrome的自动完成表格(运行〜69.0.3497.100)时,我遇到了V2隐形验证码问题。
当我使用自动完成功能填写表格时,recaptcha返回以下错误消息:
Array ( [success] => [error-codes] => Array ( [0] => missing-input-response ))
我对如何解决这个问题有些困惑。验证码可在Firefox / Edge / IE11上运行,并具有这些浏览器的自动完成功能。我可以对输入进行加扰,以使它们无法自动完成,但是如果可能的话,我不想丢失该UX。
我要提交的PHP:
<?php
if(isset($_POST['g-recaptcha-response'])) {
$secretKey = 'secret';
$response = $_POST['g-recaptcha-response'];
$remoteIp = $_SERVER['REMOTE_ADDR'];
$reCaptchaValidationUrl = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$response&remoteip=$remoteIp");
$result = json_decode($reCaptchaValidationUrl, TRUE);
if($result['success'] == 1) {
echo 'Form completed successfully.';
} else {
print_r($result);
}
}
?>
和javascript:
form.addEventListener("submit", function(event){
if(!grecaptcha.getResponse() ){
console.log("catpcha not complete");
event.preventDefault();
grecaptcha.execute();
} else {
//recaptcha is valid
}
}
});
function onSubmit(token){
console.log("token received");
form.submit();
}
任何帮助或调试自动完成事件的提示将不胜感激!谢谢。