javascript - Google reCAPTCHA 在 .NET WebForms 中不起作用
问题描述
试图在我的一个网页中包含一个 google reCAPTCHA,但我收到了错误(在 chromes 开发人员工具中):
未捕获(承诺中)错误:缺少必需的参数:sitekey
在新 dz (recaptcha__en.js:272)
在新 GB (recaptcha__en.js:511)
在 Object.Rw [作为渲染] (recaptcha__en.js:509)
在 renderRecaptcha (recaptchatest:93)
这是我的aspx设计代码;
<div id="ReCaptchContainer"></div>
<asp:Label ID="lblMEssage" runat="server" clientidmode="static"></asp:Label>
<br />
<asp:Button type="button" ID="btnSubmit" runat="server" Text="Submit" />
这是我的 JS 和 jQuery:
<script src="https://www.google.com/recaptcha/api.js?onload=renderRecaptcha&render=explicit" async defer></script>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
var your_site_key = '<%= ConfigurationManager.AppSettings["6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX"]%>';
var renderRecaptcha = function () {
grecaptcha.render('ReCaptchContainer', {
'sitekey': your_site_key,
'callback': reCaptchaCallback,
theme: 'light', //light or dark
type: 'image',// image or audio
size: 'normal'//normal or compact
});
};
var reCaptchaCallback = function (response) {
if (response !== '') {
jQuery('#lblMessage').css('color', 'green').html('Success');
}
};
jQuery('button[type="button"]').click(function(e) {
var message = 'Please checck the checkbox';
if (typeof (grecaptcha) != 'undefined') {
var response = grecaptcha.getResponse();
(response.length === 0) ? (message = 'Captcha verification failed') : (message = 'Success!');
}
jQuery('#lblMessage').html(message);
jQuery('#lblMessage').css('color', (message.toLowerCase() == 'success!') ? "green" : "red");
});
</script>
注意我已经更改了我的 API 密钥的最后 9 位数字。
任何帮助将不胜感激,谢谢!
解决方案
我很确定您用于应用程序设置的密钥是错误的:
var your_site_key = '<%= ConfigurationManager.AppSettings["6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX"]%>';
也许它应该是这样的ConfigurationManager.AppSettings["your-key"]
,返回值应该是"6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX"
?
更新:ConfigurationManager.AppSettings["your-key"]
用于从web.config
<appSettings>
部分加载配置。如果您不使用应用程序设置,那么您只需要直接添加您的密钥:
var your_site_key = "6LfaeeoUAAAAAAhiEswkFeJ278PnF3-XXXXXXXXX";
推荐阅读
- jquery - 只有一个 jquery ajax 帖子在 Firefox 中不起作用
- windows - 如何避免“让 Windows 尝试修复应用程序使其不模糊”影响我的应用程序?
- android - 我在创建构建时收到 Menifest 合并问题
- diskspace - 容器中的 Apache Pulsar 磁盘使用情况
- excel - 如何在 VBA 中读取保存在数组中的列
- c++ - 链表 - 动态或静态创建节点?
- python - 如果在 django 中将预定的布尔字段设置为 True,我如何使预订失败?
- apache-spark - 使用 Pyspark 处理来自 kafka 流的数据
- python - 在 Python 中使用正则表达式查找字符
- javascript - Vue:单击时从父组件更改组件道具,单选按钮