8

从 6 月 18 日开始,我们 Magento M1 项目的 Recaptcha 已停止工作。在recaptcha__en.js脚本函数Array.prototype.filter返回错误this.each不是函数,因为this不是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

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

4

2 回答 2

11

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

if ('NodeList' in window) {
    if (!NodeList.prototype.each && NodeList.prototype.forEach) {
        NodeList.prototype.each = NodeList.prototype.forEach;
    }
}
于 2021-06-18T15:46:28.163 回答
5

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

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

并且错误已被删除。

于 2021-06-21T14:01:13.960 回答