jquery - 仅限 Ajax 和 google recaptcha V3
问题描述
我想使用 Jquery 和 ajax 提交数据并做一些事情。
试用 Google Recaptcha V3。在下面的代码中,alert ("token 2 is " + Mytoken); ---> 在这里我收到一条错误消息,提示 Mytoken 未定义
问题是我如何让 grecaptcha.execute 返回可以在其他地方使用的数据?例如,如果验证码有效,那么我使用令牌代码提交一些 ajax 数据,并在提交的后端脚本上验证令牌。
<html>
<head>
<title>Recaptcha Ajax</title>
<script src="https://www.google.com/recaptcha/api.js?render=<?php echo $captcha_site_key; ?>"></script>
</head>
<body>
<script>
var MYtoken;
grecaptcha.ready(function() {
grecaptcha.execute('<?php echo $captcha_site_key; ?>', {action: 'test_page'}).then(function(token) {
//$("#pet_token").val(token);
//$('myform').prepend('<input type="hidden" name="recaptchaTOKEN" value="' + token + '">');
alert ("token is " + token);
alert ("and Mytoken is " + token);
});
});
for (var i = 1; i <= 5; i++) {
var tick = function(i) {
return function() {
console.log(i);
}
};
setTimeout(tick(i), 1000 * i);
}
alert ("token 2 is " + Mytoken);
</script>
解决方案
我想通了...无论我是否在 Ajax 中提交了一些数据,重要的是接收到的数据都经过重新验证码验证
所以... ajax 将简单地在隐藏字段中设置值,在后端页面上,我进行验证码验证
推荐阅读
- powershell - 用于批量更改管理器字段的 AzureAD Powershell 脚本
- android - 无法使用 MediaStore 检索最新下载的视频
- firebase-storage - 是否可以还原 Firebase Cloud Storage 中的操作?
- prometheus - 限制抓取目标时标签的允许值数量
- php - 当回显到 PHP 时,MYSQL 在数据库中增加 2 小时的时间
- angular - Angular 11 库使用路径别名
- macos - XML::LibXML - 在新的 macOS BigSur 上安装模块时出现问题
- mysql - 如何在 Rails 中仅计算 GROUP BY 中的某些行
- c - 从函数返回时数组的维度
- angular - 如何在 Angular Material 按钮中自定义行高?