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

网站Google reCAPTCHA v3报错‘Invalid key type’求排查方案

解决Google reCAPTCHA v3的"Invalid key type"错误

这个错误我之前帮不少开发者排查过,结合你说的3-4个月前正常运行、现在突然报错的情况,大概率是密钥类型不匹配或者Google reCAPTCHA控制台的配置出了问题,咱们一步步来分析:

最常见的原因:密钥类型搞混了

reCAPTCHA v3和v2的密钥是完全不通用的,哪怕你之前用对了,也可能出现以下情况:

  • 有人误改了Google reCAPTCHA控制台里的密钥类型(比如把v3改成了v2的Checkbox/Invisible类型)
  • 你不小心把v2的site key或者服务器端的secret key用到了v3的前端代码里

排查步骤:

  1. 登录Google reCAPTCHA管理后台,找到你的站点对应的密钥条目
  2. 确认密钥的类型是reCAPTCHA v3,而不是v2的任何类型

检查密钥的使用位置是否正确

v3有两种密钥:

  • Site Key(客户端密钥):只能用在前端,就是你代码里render=API_KEY和grecaptcha.execute('API_KEY')里填的那个
  • Secret Key(服务器端密钥):只能用在后端调用Google验证接口的时候

如果你把后端的Secret Key写到了前端代码里,就会直接触发"Invalid key type"错误。赶紧核对一下你填的API_KEY是不是控制台里标注为"Site key"的那个。

检查站点域名配置

哪怕密钥类型对了,如果控制台里允许的域名列表有变化(比如你换了域名、添加了子域名但没更新配置),也可能触发这个错误:

  • 去控制台确认当前站点的域名(包括www/非www、测试环境域名)已经添加到"Domains"列表里
  • 注意:localhost在开发环境是默认允许的,但生产环境必须添加真实域名

针对你代码的小优化(非直接错误,但能提升排查效率)

你可以在代码里加个小日志和错误捕获,方便排查问题:

$('.submit-e-way-bill-registration').on('submit', function (e) {
  e.preventDefault();
  var self = this;
  if ($(self)[0].checkValidity()) {
    // 新增:打印当前使用的site key,确认是否正确
    console.log('Current reCAPTCHA Site Key:', '你的真实Site Key');
    grecaptcha.ready(function () {
      grecaptcha.execute('你的真实Site Key', { action: 'homepage' })
        .then(function (token) {
          console.log(token);
          console.log('google captcha initiated');
          $('[name=captcha_token]').val(token);
          var data = $(self).serialize();
          $('.save-button-ewb').prop('disabled', true);
          $.post('/api/submit-e-way-bill-registration.php', data, function (result) {
            $('.save-button-ewb').prop('disabled', false);
            console.log('status');
            if (result.status == 'success') {
              $('.success-message').show();
              $('.submit-e-way-bill-registration').hide();
            } else {
              $('.error-message').show();
              $('.submit-e-way-bill-registration').hide();
            }
          });
        })
        // 新增:捕获reCAPTCHA执行错误,方便定位问题
        .catch(function(err) {
          console.error('reCAPTCHA执行失败:', err);
          $('.save-button-ewb').prop('disabled', false);
          // 可以在这里给用户显示验证码加载失败的提示
        });
    });
  }
});

最后一步:清除缓存测试

有时候浏览器缓存了旧的密钥或者reCAPTCHA脚本,也可能导致奇怪的错误。试试用无痕模式打开页面,或者清除浏览器缓存后再测试。


内容的提问来源于stack exchange,提问作者Sariful

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:12:53