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


11

Sto usando Magento 2.2 con il tema Porto e ricevo un [object Object]errore javascript alla customer-data.jsriga 90 nella console dopo aver effettuato l'accesso al negozio e aver aggiornato la pagina o passare a un'altra pagina.

L'ho testato su Firefox, Chrome, IE 11 e Edge e viene visualizzato solo in Firefox (il browser che utilizzo principalmente).

Non sta causando problemi seri (non per quanto posso vedere), ma vorrei risolvere questo problema.

oggetto Errore oggetto

riga in cui si verifica l'errore

Linea 90 del customer-data.jsfile è: "throw new Error(jqXHR);".

All'interno dell'oggetto jqXHR è presente un messaggio di risposta JSON:

{"message": la fonte "\" paypal-billing-Agreement \ "non è supportata"}

Ho visto un paio di suggerimenti là fuori, ma la maggior parte ruotava attorno alla pulizia della cache e dei file statici.

Ho provato: svuotare la cache e i cookie di Firefox, pulire i file statici di Magento, la cache e la cache di archiviazione, ma nulla ha funzionato finora ...

E non sono sicuro di cos'altro fare ... qualsiasi aiuto sarebbe apprezzato.

Modifica / Soluzione

La causa dell'errore era che avevo disabilitato il modulo Paypal ma non avevo cancellato la cache locale / di archiviazione del browser.

All'interno di questa cache c'era una certa chiamata al modulo paypal che non poteva essere elaborata, quindi ha restituito un errore JS come questo.

Svuotare questa cache ha risolto il problema.


Innanzitutto, controlla cosa c'è dentro l'oggetto jqXHR. Il metodo di costruzione della classe Error prevedeva il messaggio di stringa (o Oggetto con toStringmetodo).
Siarhey Uchukhlebau,

@SiarheyUchukhlebau Ho modificato la domanda con i contenuti di jqXHR.
Lez,

dove hai trovato il jqXHR Oject?
Krybbio,

@krybbio Puoi vederlo durante il debug sulla linea 90 del file customer-data.js. Puoi anche vederlo nel tuo debugger del browser nella scheda di rete (il nome dipende dal browser) -> vedrai un "codice di errore 400 - richiesta errata" e all'interno della richiesta vedrai l'URL della richiesta e il messaggio di risposta.
Lez,

Risposte:


39

Ho letteralmente perso qualche giorno a cercare di eseguire il debug di questo problema e alla fine ho ottenuto una soluzione definitiva o aggirare il problema. Spero che possa salvare alcune altre persone il mal di testa che ho attualmente!

Ho notato per la prima volta che questo errore appare quando passo dalla compilazione lato client a quella lato server Stores->Configuration->Advanced->Developer->Frontend Development Workflow

Quindi ho determinato che customer-data.jsutilizza localStorage all'interno del browser stesso per memorizzare una varietà di informazioni, in modo da poter cancellare la Magento Cache tutto ciò che vuoi e avrai ancora problemi.

TLDR:

La correzione in Google Chrome è F12 colpito per aprire la barra degli strumenti per sviluppatori, quindi selezionare la scheda Applicazione. Cancella l'archiviazione locale, l'archiviazione della sessione e i cookie. Ricarica la pagina e tutto dovrebbe andare bene. Dovrai farlo anche sulla tua pagina di amministrazione.

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


5
Come risolvere questo problema per tutti gli utenti del negozio? Vedo che molti utenti vedono questo errore nella nuova reliquia e immagino che non cancelleranno la loro memoria locale (ma probabilmente lasciano semplicemente la pagina).
bpoiss,

Grazie per questa risposta - mi ha risparmiato molte ore :)
artwoz il

Anch'io ho avuto questo errore, si è scoperto che era causato da intestazioni già inviate da un altro modulo. Aiuta ad aggiungere un console.log (jqXHR) poco prima che venga generato l'errore. Vedi anche magento.stackexchange.com/questions/198333/… in fondo
Isotta

Ho provato tutte le cose che hai detto ma lo stesso problema. screencast.com/t/XEueQ00Foqs3
Pratik Mehta

per fortuna l'ho trovato prima di passare molte ore, a un certo punto avevo provato a invalidare la sezione erroneamente denominata, e questo è stato memorizzato nella cache.
Joel Davey,

1

Questo errore indica che i dati di origine non sono specificati nella sectionSourceMapposizione nella Magento\Customer\CustomerData\SectionPoolclasse. I paypal-billing-agreementdati sono definiti nel file 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>

Quindi, probabilmente il modulo paypal è stato disabilitato nel negozio o alcuni moduli di terze parti lo hanno disabilitato nel modo non corretto.

Per eseguire il debug di questo problema, apri il file vendor/magento/module-customer/CustomerData/SectionPool.phpe controlla quali sezioni vengono caricate nel getSectionsDatametodo. Inoltre, puoi provare a chiamare il metodo getSectionsData(['paypal-billing-agreement'])da qualche parte da un codice personalizzato e controllare passo dopo passo perché questi dati non vengono caricati.


1
Sembra che il modulo Paypal sia disabilitato nell'app / etc / config.php ma non è stato disabilitato "nel modo giusto", quindi ha causato questo problema. Grazie per i suggerimenti!
Lez,

@Lez Sono felice di aiutarti
Siarhey Uchukhlebau,

1

Per me ho visto che il problema aveva a che fare con l'articolo che avevo appena aggiunto al carrello.

inserisci qui la descrizione dell'immagine

Quindi ho eseguito la seguente query sul DB per rimuovere tutte le voci di preventivo dal mio account utente:

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

Dopo di che il problema è andato via :)


0

Elimina i record delle voci "Tema Porto" dalla tabella "Tema". I record verranno nuovamente creati automaticamente. E riassegna nuovamente i siti Web con questo tema di Porto e controlla.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.