Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google invisible recaptcha stopped working in AU

Starting from the 18th of June, the Recaptcha on our Magento M1 project has stopped working. In recaptcha__en.js script function Array.prototype.filter returns an error this.each is not a function, because this is not an Array, it’s NodeList, and it can’t be filtered like this. enter image description here

On the project side, we send a request to URL https://www.google.com/recaptcha/api.js, which returns different responses for different countries.

For AU IP (Also checked IE IP) request script src ashttps://www.gstatic.com/recaptcha/releases/FDTCuNjXhn1sV0lk31aK53uB/recaptcha__en.js

And for EU region it uses https://www.gstatic.com/recaptcha/releases/6OAif-f8nYV0qSFmq-D6Qssr/recaptcha__en.js

Please advise how to solve the problem so we could re-enable the Recaptcha. Could you also tell what could cause it from stopping working?

like image 919
24x7 Support Avatar asked Jun 18 '21 11:06

24x7 Support


2 Answers

Same here, the problem started today at the same time in magento 1, solved with this js :

if ('NodeList' in window) {
    if (!NodeList.prototype.each && NodeList.prototype.forEach) {
        NodeList.prototype.each = NodeList.prototype.forEach;
    }
}
like image 63
M805 Avatar answered Oct 05 '22 13:10

M805


I have the same problem. I solved it by adding these lines of code just before you have the google ready function call. grecaptcha.ready(...

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

And the error has been removed.

like image 22
davilocho Avatar answered Oct 05 '22 13:10

davilocho