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

reCAPTCHA v3集成报错:未捕获Promise错误(无效操作名)

问题根源分析

错误提示明确指出动作名仅允许包含A-Za-z或下划线,你的代码中action使用了连字符contact-form,这违反了reCAPTCHA v3的命名规则,这才是触发"Invalid action name"错误的直接原因,和邮箱、姓名中的符号无关。

解决步骤

1. 修改前端JS的action名称

在init.js中,将execute方法的action值从"contact-form"替换为"contact_form"(用下划线替代连字符):

grecaptcha.execute("my-own-site-key", {
    action: "contact_form"
})

2. 修改后端PHP的action验证逻辑

在sendmail.php里,同步更新action的验证条件:

if($recaptcha->success == true && $recaptcha->score >= 0.5 && $recaptcha->action == "contact_form"){

3. 修复PHP代码的语法错误

你的PHP代码存在两处语法问题,虽不直接引发当前错误,但会导致后续功能异常:

  • $recaptcha_secret = "my-little-secret-key" 末尾缺少分号,补充后:
$recaptcha_secret = "my-little-secret-key";
  • else分支的echo语句末尾缺少分号,补充后:
echo "Vi tror att du är en robot, är du inte en robot så vänligen kontakta oss på följande mail. (axel@brannhult.se) ";
验证修改

完成上述调整后重新提交表单,reCAPTCHA的Promise错误将消失,邮件发送逻辑也能正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:50:36