Magento 2 customer-data.js: 90: 23 [objet Object]


11

J'utilise Magento 2.2 avec le thème Porto et j'obtiens une [object Object]erreur javascript à la customer-data.jsligne 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.

objet Erreur d'objet

ligne où l'erreur se produit

Ligne 90 du customer-data.jsfichier 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.


Tout d'abord, vérifiez ce qui se trouve à l'intérieur de l'objet jqXHR. La méthode de construction de la classe Error attendait le message de chaîne (ou Objet avec toStringméthode).
Siarhey Uchukhlebau

@SiarheyUchukhlebau J'ai édité la question avec le contenu jqXHR.
Lez

où avez-vous trouvé le jqXHR Oject?
krybbio

@krybbio Vous pouvez le voir lors du débogage sur la ligne 90 du fichier customer-data.js. Vous pouvez également le voir dans le débogueur de votre navigateur sur l'onglet réseau (le nom dépend du navigateur) -> vous verrez un "code d'erreur 400 - mauvaise demande" et à l'intérieur de la demande, vous verrez l'url de la demande et le message de réponse.
Lez

Réponses:


39

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.jsutilise 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


5
Comment résoudre ce problème pour tous les utilisateurs de la boutique? Je peux voir que de nombreux utilisateurs voient cette erreur dans une nouvelle relique et je suppose qu'ils ne videront pas leur stockage local (mais ils quittent probablement la page).
bpoiss

Merci pour cette réponse - cela m'a fait gagner de nombreuses heures :)
artwoz

J'ai aussi eu cette erreur, il s'est avéré qu'elle était causée par des en-têtes déjà envoyés par un autre module. Il est utile d'ajouter un fichier console.log (jqXHR) juste avant que l'erreur ne soit levée. Voir aussi magento.stackexchange.com/questions/198333/… en bas
Isolde

J'ai essayé toutes ces choses que vous avez dites mais le même problème. screencast.com/t/XEueQ00Foqs3
Pratik Mehta

heureusement, j'ai trouvé cela avant de passer de nombreuses heures, j'avais essayé d'invalider une section mal nommée à un moment donné, et cela a été mis en cache.
Joel Davey

1

Cette erreur indique que les données source ne sont pas spécifiées dans le sectionSourceMapsitué à la Magento\Customer\CustomerData\SectionPoolclasse. Les paypal-billing-agreementdonnées sont définies dans le fichier vendor/magento/module-paypal/etc/frontend/di.xml:

<type name="Magento\Customer\CustomerData\SectionPool">
    <arguments>
        <argument name="sectionSourceMap" xsi:type="array">
            <item name="paypal-billing-agreement" xsi:type="string">Magento\Paypal\CustomerData\BillingAgreement</item>
        </argument>
    </arguments>
</type>

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.phpet vérifiez quelles sections se chargent dans la getSectionsDataméthode. En outre, vous pouvez essayer d'appeler la méthode getSectionsData(['paypal-billing-agreement'])quelque part à partir d'un code personnalisé et vérifier étape par étape pourquoi ces données ne se chargent pas.


1
Il semble que le module Paypal soit désactivé dans l'application / etc / config.php, mais il n'a pas été désactivé "dans le bon sens", ce qui a provoqué ce problème. Merci pour les suggestions!
Lez

@Lez, je suis heureux de vous aider
Siarhey Uchukhlebau

1

Pour moi, je pouvais voir que le problème avait quelque chose à voir avec l'article que je venais d'ajouter au panier.

entrez la description de l'image ici

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:

DELETE FROM quote WHERE customer_email = 'my.user.email@example.com';

Après cela, le problème a disparu :)


0

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.