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

Cordova生产环境应用reCaptcha v1突发失效问题求助

解决Cordova应用中reCaptcha v1突然失效的问题

我上周刚帮团队处理过一模一样的情况!咱们先拆解下问题:

问题根源

虽然官方之前给出的v1停服时间是2018年3月,但Google近期明显提前收紧了对v1服务的限制——尤其是针对异步加载脚本的场景。你看到的控制台警告Failed to execute 'write' on 'Document': It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened,本质是因为reCaptcha v1的旧脚本依赖document.write来注入验证码资源,但现在Google强制把v1的脚本标记为异步加载,而Cordova的WebView在文档加载完成后会关闭写入权限,直接导致脚本执行失败,验证码图片加载不出来。

解决方案

1. 优先迁移到reCaptcha v2/v3(唯一长久方案)

v1早就被官方弃用,后续只会有更多限制,迁移是必须的:

  • 如果用Cordova插件,有成熟的第三方插件可以直接集成v2,比如cordova-plugin-recaptcha,配置起来很简单;
  • 也可以直接集成Web版的reCaptcha v2,注意在Cordova的config.xml里把reCaptcha的域名加入允许列表,避免跨域问题。

2. 临时应急方案(仅用于争取迁移时间)

如果迁移需要排期,试试这两个临时办法,但不建议长期用:

  • 尝试把reCaptcha v1的脚本从异步加载改成同步加载(去掉async/defer属性),但亲测大部分情况下Google已经强制脚本异步,这个办法可能没用;
  • 检查Cordova WebView的安全设置,是否开启了拦截document.write的规则,临时关闭相关限制(会带来安全风险,谨慎操作)。

其他开发者反馈

最近在Stack Overflow和Cordova官方论坛上,已经有不少开发者反馈这个突发问题,都是没改代码就突然失效,显然是Google那边的服务调整导致的,不是你的代码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:07:08