You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

reCAPTCHA v3在b.com域名失效,报Cannot set properties of null错误的问题求助

reCAPTCHA v3在b.com域名失效,报Cannot set properties of null错误的问题求助

我有两个域名a.com和b.com,都启用了reCAPTCHA功能,并且用的是同一套代码,但奇怪的是reCAPTCHA在a.com上正常工作,到了b.com就失效了。具体的情况如下:

两个域名的reCAPTCHA密钥情况

  • a.com:reCAPTCHA v3的密钥是朋友两年前创建的,站点使用grecaptcha.execute方式调用,完全正常
  • b.com:今天刚为这个域名创建了reCAPTCHA v3密钥,却出现了报错

遇到的错误信息

在b.com的浏览器控制台里,我看到了这样的错误:

contact.php:37 Uncaught (in promise) TypeError: Cannot set properties of null (setting 'value')
    at contact.php:37:71
(anonymous) @   contact.php:37
Promise.then        
then    @   recaptcha__en.js:591
(anonymous) @   contact.php:36
Promise.then        
(anonymous) @   recaptcha__en.js:138
(anonymous) @   recaptcha__en.js:195
(anonymous) @   recaptcha__en.js:196
(anonymous) @   recaptcha__en.js:472
(anonymous) @   recaptcha__en.js:196
(anonymous) @   recaptcha__en.js:1132
(anonymous) @   recaptcha__en.js:1142

我使用的客户端代码

这是我在两个站点上都用的客户端代码:

<script src="https://www.google.com/recaptcha/api.js?render=mysitekey"></script>
<script>
    grecaptcha.ready(function() {
        grecaptcha.execute('mysitekey', {action: 'contact_form'})
            .then(function(token) {
                document.getElementById('g-recaptcha-response').value = token;
            });
    });
</script>

额外发现的差异

我还注意到两个域名生成的reCAPTCHA token长度不一样:

  • a.com生成的token大概有1100个字符
  • b.com生成的token大概有2400个字符

有没有朋友能帮我看看,到底是代码哪里出问题了?


备注:内容来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 20:18:13