【问题标题】:Google invisible recaptcha stopped working in AU谷歌隐形验证码停止在澳大利亚工作
【发布时间】:2021-09-03 03:21:12
【问题描述】:

从 6 月 18 日开始,我们 Magento M1 项目的 Recaptcha 已停止工作。 在 recaptcha__en.js 脚本函数中 Array.prototype.filter 返回错误 this.each 不是函数,因为 this 不是 Array,是 NodeList,不能这样过滤。 enter image description here

在项目端,我们向 URL https://www.google.com/recaptcha/api.js 发送请求,该请求返回不同国家/地区的不同响应。

对于 AU IP(也检查了 IE IP)请求脚本 src as https://www.gstatic.com/recaptcha/releases/FDTCuNjXhn1sV0lk31aK53uB/recaptcha__en.js

对于欧盟地区,它使用https://www.gstatic.com/recaptcha/releases/6OAif-f8nYV0qSFmq-D6Qssr/recaptcha__en.js

请告知如何解决问题,以便我们重新启用验证码。你能告诉我是什么原因导致它停止工作吗?

【问题讨论】:

  • 你必须尝试查看控制台日志,错误是什么

标签: recaptcha invisible magento-1.13


【解决方案1】:

我也有同样的问题。我通过添加这些代码行来解决它,就在你有谷歌准备好的函数调用之前。 grecaptcha.ready(...

//fix google recaptcha
if ('NodeList' in window) {
    if (!NodeList.prototype.each && NodeList.prototype.forEach) {
        NodeList.prototype.each = NodeList.prototype.forEach;
    }
}

并且错误已被消除。

【讨论】:

    【解决方案2】:

    这里也一样,今天在magento 1中同时开始问题,用这个js解决了:

    if ('NodeList' in window) {
        if (!NodeList.prototype.each && NodeList.prototype.forEach) {
            NodeList.prototype.each = NodeList.prototype.forEach;
        }
    }
    

    【讨论】:

    • 工作就像一个魅力。我刚刚在调用 recaptcha 的 api.js 之前添加了它并解决了问题。
    猜你喜欢
    • 2015-06-04
    • 1970-01-01
    • 2020-12-05
    • 2015-07-13
    • 2013-03-13
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多