【问题标题】:Polyfills interfering with reCAPTCHA?Polyfill 会干扰 reCAPTCHA?
【发布时间】:2021-02-24 04:29:51
【问题描述】:

我最近遇到了一个 polyfill 库 (Prototype.js) 和 recaptcha 的问题。出于某种原因,它的行为很冒险,并在位置 0 处抛出“JSON 中的意外令牌 x”错误,并且轮子在一段时间后旋转并停止,而没有加载挑战。当我将prototype.js 更新到其最新版本(1.7.3)时,它运行良好。不知道这里发生了什么。看起来没有对任何文件(recaptcha 或原型)进行更改,并且不同微站点中的行为不一致。请提供任何帮助。对不起,我不能分享代码,因为它是给客户的。

【问题讨论】:

    标签: recaptcha prototypejs polyfills


    【解决方案1】:

    编辑

    解决方案已发布在 https://stackoverflow.com/a/64808781/5067818 上。这对我来说效果很好,我发现它比使用 iframe 更好!


    我在公司也面临同样的问题。在阅读了一些其他相关的 stackoverflow 问题和调试之后,我们已经确认了人们报告的内容:recaptcha javascript 代码(加载了一个 script 标签)正在与我们项目中的另一个 javascript 交互。在我们的例子中,它是 ajax4jsf/framework.pack.js,但是有报告 here 与原型.js 发生了同样的事情。

    根据我目前阅读的内容,通过将 recaptcha 嵌入 iframe 来实现快速修复。我正在尝试通过确保 recaptcha 脚本独立运行来解决它(到目前为止没有成功,哈哈)。

    干杯!

    【讨论】:

    • 感谢林肯,您分享的文章中的注释对您有所帮助。我仍在尝试调试代码以获得长期修复并确定阻止这种情况再次发生的方法。将保持线程通知和更新。
    • 很高兴为您提供帮助!我认为我们的问题最终是相同的...... ajax4jsf 脚本里面有prototype.js。问题是,prototype.js 覆盖了一些原生 javascript 功能。在我的例子中,prototype.js 覆盖了 Array.prototype.reduce。
    • 我遇到了同样的问题。最终覆盖了 Array.prototype.reduce 并且效果很好。任何线索为什么会突然发生这种情况?
    • 到目前为止,我找不到 Recaptcha js API 的未缩小版本,我不能肯定地说...我的猜测是最新版本开始使用 Array.prototype.reduce 在一个或更多的地方,产生导致这个错误的连锁反应......无论如何,我很高兴它结束了!
    • 你打赌,我很高兴它结束了。我咨询了谷歌团队,他们提到没有对 v2 代码进行任何更改,我也没有。奇怪!
    猜你喜欢
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    相关资源
    最近更新 更多