求助:Recaptcha动作未在报告中正确记录,始终显示为submit
解决Recaptcha动作始终显示为submit的问题
排查重复的Recaptcha调用
检查页面代码中是否存在其他grecaptcha.execute调用,比如表单提交事件里单独触发了action为submit的请求。如果有,后一次生成的token会覆盖你之前带homepage动作的token,导致报告里显示的是submit。全局搜索grecaptcha.execute,确认只有你当前这段设置了homepage的调用。验证参数传递与对象修改
先确认data对象的action值没有被意外修改,在调用前加日志检查:console.log('当前设置的action:', data.action); grecaptcha.ready(() => { grecaptcha.execute('RECAPTCHASITEKEY', data).then((token) => { console.log('生成token时使用的action:', data.action); recaptcha_token = token; }); });确保没有后续代码修改
data.action为submit,比如有没有data.action = 'submit'这类语句。清除缓存并核对站点密钥
浏览器缓存的旧脚本可能导致参数未生效,彻底清除浏览器缓存后重新测试。同时确认使用的站点密钥对应正确的Recaptcha v3项目,避免密钥关联了其他配置。检查表单提交逻辑
如果你的recaptcha_token用于表单提交,要确保提交时用的是你生成的带homepage动作的token,而非表单触发时自动生成的默认submit动作token。比如避免在表单的onsubmit事件中再次调用grecaptcha.execute。
内容的提问来源于stack exchange,提问作者Roffers
相关产品推荐
相关产品推荐

