J'utilise Magento 2.2 avec le thème Porto et j'obtiens une [object Object]
erreur javascript à la customer-data.js
ligne 90 dans la console après me connecter au magasin et rafraîchir la page ou passer à une autre page.
J'ai testé cela dans Firefox, Chrome, IE 11 et Edge et cela n'apparaît que dans Firefox (le navigateur que j'utilise principalement).
Cela ne cause pas de problèmes sérieux (pas autant que je puisse voir), mais je voudrais résoudre ce problème.
Ligne 90 du customer-data.js
fichier est: "throw new Error(jqXHR);"
.
À l'intérieur de l'objet jqXHR se trouve un message de réponse JSON:
{"message": la source de la section "\" paypal-billing-agreement \ "n'est pas prise en charge"}
J'ai vu quelques suggestions, mais la plupart tournaient autour du nettoyage du cache et des fichiers statiques.
J'ai essayé: effacer le cache et les cookies de Firefox, nettoyer les fichiers statiques de Magento, le cache et le cache de stockage, mais rien n'a fonctionné jusqu'à présent ...
Et je ne sais pas trop quoi faire d'autre ... toute aide serait appréciée.
Modifier / Solution
La cause de l'erreur était que j'avais désactivé le module Paypal mais que je n'avais pas effacé le cache local / de stockage du navigateur.
À l'intérieur de ce cache se trouvait un certain appel au module paypal qui n'a pas pu être traité, il a donc renvoyé une erreur JS comme celle-ci.
Vider ce cache a résolu le problème.
jqXHR
. La méthode de construction de la classe Error attendait le message de chaîne (ou Objet avectoString
méthode).Réponses:
J'ai littéralement perdu quelques jours à essayer de déboguer ce problème et j'ai finalement obtenu une solution définitive ou contourner ce que j'appellerais. Espérons que cela puisse sauver quelques autres personnes du mal de tête que j'ai actuellement!
J'ai remarqué pour la première fois que cette erreur apparaît lorsque je passe de la compilation côté client à la compilation côté serveur dans
Stores->Configuration->Advanced->Developer->Frontend Development Workflow
Ensuite, j'ai déterminé qu'il
customer-data.js
utilise le localStorage dans le navigateur lui-même pour stocker une variété d'informations, de sorte que vous pouvez effacer le cache Magento tout ce que vous voulez et vous aurez toujours des problèmes.TLDR:
Le correctif dans Google Chrome est F12 pour ouvrir la barre d'outils développeur, puis sélectionnez l'onglet Application. Effacez le stockage local, le stockage de session et les cookies. Rechargez la page et tout devrait bien se passer. Vous devrez également le faire sur votre page d'administration.
Crédit: https://github.com/magento/magento2/issues/6410#issuecomment-243704461
la source
Cette erreur indique que les données source ne sont pas spécifiées dans le
sectionSourceMap
situé à laMagento\Customer\CustomerData\SectionPool
classe. Lespaypal-billing-agreement
données sont définies dans le fichiervendor/magento/module-paypal/etc/frontend/di.xml
:Donc, probablement le module paypal a été désactivé dans le magasin ou un module tiers l'a désactivé de la manière la plus appropriée.
Pour déboguer ce problème, ouvrez le fichier
vendor/magento/module-customer/CustomerData/SectionPool.php
et vérifiez quelles sections se chargent dans lagetSectionsData
méthode. En outre, vous pouvez essayer d'appeler la méthodegetSectionsData(['paypal-billing-agreement'])
quelque part à partir d'un code personnalisé et vérifier étape par étape pourquoi ces données ne se chargent pas.la source
Pour moi, je pouvais voir que le problème avait quelque chose à voir avec l'article que je venais d'ajouter au panier.
J'ai donc exécuté la requête suivante sur la base de données pour supprimer tous les éléments de devis de mon compte d'utilisateur:
Après cela, le problème a disparu :)
la source
Veuillez supprimer les enregistrements des entrées "Porto Theme" du tableau "theme". Les enregistrements se recréeront automatiquement. Et réaffectez à nouveau des sites Web avec ce thème de Porto et vérifiez.
la source