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

11

Ich verwende Magento 2.2 mit Porto-Design und erhalte einen [object Object]Javascript-Fehler in customer-data.jsZeile 90 in der Konsole, nachdem ich mich im Store angemeldet und die Seite aktualisiert oder zu einer anderen Seite gewechselt habe.

Ich habe dies in Firefox, Chrome, IE 11 und Edge getestet und es wird nur in Firefox (dem Browser, den ich meistens benutze) angezeigt.

Es verursacht keine ernsthaften Probleme (nicht so weit ich sehen kann), aber ich möchte dieses Problem lösen.

Objekt Objektfehler

Zeile, in der der Fehler auftritt

Zeile 90 der customer-data.jsDatei lautet : "throw new Error(jqXHR);".

Im jqXHR-Objekt befindet sich eine JSON-Antwortnachricht:

{"message": "\" paypal-billing-Agreement \ "Abschnittsquelle wird nicht unterstützt"}

Ich habe da draußen ein paar Vorschläge gesehen, aber die meisten drehten sich um das Bereinigen von Cache und statischen Dateien.

Ich habe versucht: Firefox-Cache und Cookies löschen, statische Magento-Dateien, Cache und Speicher-Cache bereinigen, aber bisher hat nichts funktioniert ...

Und ich bin mir nicht sicher, was ich sonst tun soll ... jede Hilfe wäre willkommen.

Bearbeiten / Lösung

Die Ursache des Fehlers war, dass ich das Paypal-Modul deaktiviert, aber den lokalen Browser- / Speicher-Cache nicht geleert habe.

In diesem Cache befand sich ein bestimmter Aufruf des Paypal-Moduls, der nicht verarbeitet werden konnte, sodass ein JS-Fehler wie dieser zurückgegeben wurde.

Durch das Löschen dieses Caches wurde das Problem behoben.

Lez
quelle
Überprüfen Sie zunächst, was sich im Objekt befindet jqXHR. Die Konstruktmethode der Error-Klasse hat die Zeichenfolgennachricht (oder das Objekt mit toStringMethode) erwartet .
Siarhey Uchukhlebau
@SiarheyUchukhlebau Ich habe die Frage mit dem jqXHR-Inhalt bearbeitet.
Lez
Wo hast du das jqXHR-Objekt gefunden?
Krybbio
@krybbio Sie können es sehen, während Sie in Zeile 90 der Datei customer-data.js debuggen. Sie können es auch in Ihrem Browser-Debugger auf der Registerkarte "Netzwerk" sehen (Name hängt vom Browser ab) -> Sie sehen einen "400-Fehlercode - fehlerhafte Anfrage" und in der Anfrage sehen Sie die Anforderungs-URL und die Antwortnachricht.
Lez

Antworten:

39

Ich habe buchstäblich ein paar Tage damit verbracht, dieses Problem zu beheben, und schließlich eine endgültige Lösung gefunden oder umgangen, wie ich es nennen würde. Hoffentlich kann es ein paar anderen Menschen die Kopfschmerzen ersparen, die ich derzeit habe!

Ich habe diesen Fehler zum ersten Mal bemerkt, als ich von der clientseitigen zur serverseitigen Kompilierung in gewechselt bin Stores->Configuration->Advanced->Developer->Frontend Development Workflow

Dann habe ich festgestellt, dass customer-data.jsder localStorage im Browser selbst zum Speichern einer Vielzahl von Informationen verwendet wird, sodass Sie den Magento-Cache nach Belieben löschen können und weiterhin Probleme auftreten.

TLDR:

Der Fix in Google Chrome wird mit F12 gedrückt, um die Entwickler-Symbolleiste zu öffnen, und wählen Sie dann die Registerkarte Anwendung. Löschen Sie den lokalen Speicher, den Sitzungsspeicher und die Cookies. Laden Sie die Seite neu und alles sollte gut sein. Sie müssen dies auch auf Ihrer Administrationsseite tun.

Gutschrift: https://github.com/magento/magento2/issues/6410#issuecomment-243704461

RLTcode
quelle
5
Wie kann dies für alle Benutzer des Shops behoben werden? Ich kann sehen, dass viele Benutzer diesen Fehler in einem neuen Relikt sehen und ich denke, sie werden ihren lokalen Speicher nicht löschen (aber sie verlassen wahrscheinlich nur die Seite).
bpoiss
Vielen Dank für diese Antwort - es hat mir viele Stunden
erspart
Ich habe auch diesen Fehler bekommen, es stellte sich heraus, dass er durch Header verursacht wurde, die bereits von einem anderen Modul einen Fehler gesendet haben. Es ist hilfreich, ein console.log (jqXHR) hinzuzufügen, bevor der Fehler ausgelöst wird. Siehe auch magento.stackexchange.com/questions/198333/… unten
Isolde
Ich habe alle Dinge ausprobiert, die du gesagt hast, aber das gleiche Problem. screencast.com/t/XEueQ00Foqs3
Pratik Mehta
Zum Glück fand ich dies, bevor ich viele Stunden verbrachte. Ich hatte versucht, einen falsch benannten Abschnitt irgendwann ungültig zu machen, und dieser wurde zwischengespeichert.
Joel Davey
1

Dieser Fehler besagt, dass die Quelldaten nicht in sectionSourceMapder Magento\Customer\CustomerData\SectionPoolKlasse angegeben sind. Die paypal-billing-agreementDaten sind in der Datei definiert 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>

Wahrscheinlich wurde das Paypal-Modul im Geschäft deaktiviert, oder ein Modul eines Drittanbieters hat es nicht richtig deaktiviert.

Um dieses Problem zu beheben, öffnen Sie die Datei vendor/magento/module-customer/CustomerData/SectionPool.phpund überprüfen Sie, welche Abschnitte in die getSectionsDataMethode geladen werden. Darüber hinaus können Sie versuchen, die Methode getSectionsData(['paypal-billing-agreement'])irgendwo aus einem benutzerdefinierten Code aufzurufen und Schritt für Schritt zu überprüfen, warum diese Daten nicht geladen werden.

Siarhey Uchukhlebau
quelle
1
Scheint, ich habe das Paypal-Modul in app / etc / config.php deaktiviert, aber es wurde nicht "auf die richtige" Weise deaktiviert, so dass es dieses Problem verursachte. Vielen Dank für die Vorschläge!
Lez
@Lez Ich bin froh, Ihnen zu helfen
Siarhey Uchukhlebau
1

Für mich konnte ich sehen, dass das Problem etwas mit dem Artikel zu tun hatte, den ich gerade in den Warenkorb gelegt hatte.

Geben Sie hier die Bildbeschreibung ein

Daher habe ich die folgende Abfrage in der Datenbank ausgeführt, um alle Angebotselemente aus meinem Benutzerkonto zu entfernen:

DELETE FROM quote WHERE customer_email = '[email protected]';

Danach ging das Problem weg :)

Stechpalme
quelle
0

Bitte löschen Sie Datensätze von "Porto Theme" -Einträgen aus der "theme" -Tabelle. Die Datensätze werden automatisch erneut erstellt. Und ordnen Sie Websites mit diesem Porto-Thema erneut zu und überprüfen Sie.

Sathya
quelle