最近,谷歌彻底彻底检查了他们的reCaptcha API并将其简化为一个复选框.

问题是,我可以提交包含reCaptcha的表单而不检查它,表单将忽略reCaptcha.
在您必须使用私钥等将表单发送到PHP文件之前,我在他们的开发人员指南中没有看到任何提及.我不知道如何验证表单以确保用户填写新的reCaptcha.
我错过了什么吗?是否仍需要具有私钥的PHP文件?
到目前为止我所有的reCaptcha都是:
<div data-type="image" class="g-recaptcha" data-sitekey="My Public Key"></div>
Run Code Online (Sandbox Code Playgroud) 我搜索了很多但我无法弄清楚如何在表单提交之前验证新的reCaptcha,以及jQuery validation插件的验证功能.
我的意思是这样的:
$.validator.addMethod('reCaptchaMethod', function (value, element, param) {
if (grecaptcha.getResponse() == ''){
return false;
} else {
// I would like also to check server side if the recaptcha response is good
return true
}
}, 'You must complete the antispam verification');
$("#form").validate({
rules: {
name: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
reCaptcha: {
reCaptchaMethod: true
}
},
messages: {
name: "Please fill your name",
email: "Please use …Run Code Online (Sandbox Code Playgroud) 难道验证码2版公开任何客户端的事件?我正在寻找具体的方法来确定一旦勾选方框后何时返回了Captcha响应,我就可以显示下面的"继续"按钮.
如果没有这个,用户可以单击复选框,然后在验证码响应返回之前快速单击提交按钮.
我可以将自己的click事件处理程序添加到类中recaptcha-checkbox-checkmark并轮询tick的可见性,我只是想知道是否有更简单的方法来执行此操作?
$(".recaptcha-checkbox-checkmark").click(function() {
//...Poll for visibility of tick
});
Run Code Online (Sandbox Code Playgroud) 当我在同一页面上有多个时,我想知道如何验证Recaptcha客户端.我找到了这个/sf/answers/2002556041/,当我有一个时就可以了.
但是现在我在每个页面上都有一个站点的foooter,并且在一些注册表单中有一个,所以有可能同时主题的apear.
我很感激任何消化.谢谢.:)
我有一个ASP.NET Web API 2项目.我试图从表单中读取Google Captcha.我试过这个代码:
public string Post(FoundingRequest model)
{
var response = Request["g-recaptcha-response"];
string secretKey = "my key";
var client = new WebClient();
var result = client.DownloadString(
$"https://www.google.com/recaptcha/api/siteverify?secret={secretKey}&response={response}");
var obj = JObject.Parse(result);
model.Captcha = (bool)obj.SelectToken("success");
....
}
Run Code Online (Sandbox Code Playgroud)
但我在第一行收到错误:
无法将带有[]的索引应用于类型为"HttpRequestMessage"的表达式
为什么?以及如何解决?谢谢
我的网络中有一个表单,但我一直在收到一些跨度,所以我添加了 Google RecaptchaV2 并停止了跨度,但我想禁用提交按钮,直到检查了 Recaptcha 并且用户证明这是人类。
RecaptchaV2 在 Iframe 内运行,如何读取元素或属性以禁用提交?
在 Iframe 内部有一个跨度,一旦验证更改内容:从:
<span id="recaptcha-accessible-status">Recaptcha requires verification</span>
到:
<span id="recaptcha-accessible-status">You are verified</span>
Run Code Online (Sandbox Code Playgroud)
所以阅读我认为可能可以使用 Jquery 禁用/启用提交按钮,尝试使用 content() 读取它但无法访问 iframe 内容,有什么想法吗?
谢谢!
我正在尝试在我的项目中实现 recaptcha,但我不确定如何使用它。
我以这种方式导入脚本:
public loadScript() {
let body = <HTMLDivElement>document.body;
let script = document.createElement('script');
script.innerHTML = '';
script.src = 'https://www.google.com/recaptcha/api.js';
script.async = true;
script.defer = true;
body.appendChild(script);
}
Run Code Online (Sandbox Code Playgroud)
然后我在组件构造函数中调用这个函数,它可以工作 - recaptcha 被正确呈现并且可以工作,但是如何从中获得对我的后端的响应?
我试过了,grecaptcha.getResponse()但我明白了ReferenceError: "grecaptcha is not defined"- 有趣的事情并不总是如此。那么如何让 Typescript 知道 grecaptcha 是什么?
recaptcha ×7
javascript ×4
jquery ×3
php ×2
angular ×1
c# ×1
forms ×1
html ×1
typescript ×1
validation ×1