Google invisible recaptcha 在 AU 停止工作

24x*_*ort 5 invisible recaptcha magento-1.13

从 6 月 18 日开始,我们 Magento M1 项目上的 Recaptcha 已停止工作。在recaptcha__en.js 脚本函数Array.prototype.filter 中返回错误this.each is not a function,因为这不是Array,是NodeList,不能像这样过滤。 在此处输入图片说明

在项目端,我们向 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。你还能说出什么可能导致它停止工作吗?

小智 8

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

if ('NodeList' in window) {
    if (!NodeList.prototype.each && NodeList.prototype.forEach) {
        NodeList.prototype.each = NodeList.prototype.forEach;
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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

并且错误已被删除。