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

11

Saya menggunakan Magento 2.2 dengan tema Porto dan mendapatkan [object Object]kesalahan javascript di customer-data.jsbaris 90 di konsol setelah masuk ke toko dan menyegarkan halaman atau beralih ke halaman lain.

Saya menguji ini di Firefox, Chrome, IE 11 dan Edge dan itu hanya muncul di Firefox (browser yang saya gunakan kebanyakan).

Itu tidak menyebabkan masalah serius (tidak sejauh yang saya bisa lihat), tapi saya ingin menyelesaikan masalah ini.

objek Kesalahan objek

baris tempat kesalahan terjadi

Baris 90 dari customer-data.jsfile: "throw new Error(jqXHR);".

Di dalam objek jqXHR adalah pesan respons JSON:

{"message": "\" sumber bagian paypal-billing-agreement \ "tidak didukung"}

Saya telah melihat beberapa saran di luar sana, tetapi kebanyakan dari mereka berkisar membersihkan cache dan file statis.

Saya mencoba: membersihkan cache dan cookie firefox, membersihkan file statis Magento, cache dan cache penyimpanan, tetapi tidak ada yang berhasil sejauh ini ...

Dan saya tidak begitu yakin apa yang harus dilakukan ... bantuan apa pun akan dihargai.

Edit / Solusi

Penyebab kesalahan adalah bahwa saya telah menonaktifkan modul Paypal tetapi tidak menghapus cache lokal / penyimpanan browser.

Di dalam cache ini ada panggilan tertentu ke modul paypal yang tidak dapat diproses sehingga mengembalikan kesalahan JS seperti ini.

Mengosongkan cache ini memperbaiki masalah.

Lez
sumber
Pertama, periksa apa yang ada di dalam Object jqXHR. Metode konstruk dari kelas Galat mengharapkan pesan string (atau Objek dengan toStringmetode).
Siarhey Uchukhlebau
@SiarheyUchukhlebau Saya mengedit pertanyaan dengan konten jqXHR.
Lez
di mana Anda menemukan jqXHR Oject?
krybbio
@krybbio Anda dapat melihatnya saat debugging pada baris 90 dari file customer-data.js. Anda juga dapat melihatnya di debugger browser Anda pada tab jaringan (nama tergantung pada browser) -> Anda akan melihat "400 kode kesalahan - permintaan buruk" dan di dalam permintaan Anda akan melihat url permintaan dan pesan respons.
Lez

Jawaban:

39

Saya benar-benar menyia-nyiakan beberapa hari untuk mencoba men-debug masalah ini dan akhirnya mendapatkan solusi yang pasti atau bekerja di sekitar saya akan menyebutnya Semoga itu bisa menyelamatkan beberapa orang sakit kepala yang saya miliki saat ini!

Saya pertama kali melihat kesalahan ini muncul ketika saya beralih dari Kompilasi Sisi-Klien ke Sisi-Server di Stores->Configuration->Advanced->Developer->Frontend Development Workflow

Lalu saya memutuskan bahwa customer-data.jsmenggunakan localStorage di dalam browser itu sendiri untuk menyimpan berbagai informasi, sehingga Anda dapat menghapus Magento Cache semua yang Anda inginkan dan Anda masih akan memiliki masalah.

TLDR:

Perbaikan di Google Chrome tekan F12 untuk membuka Toolbar Pengembang, lalu pilih tab Aplikasi. Kosongkan Penyimpanan Lokal, Penyimpanan Sesi, dan Cookie. Muat ulang halaman dan semuanya harus baik-baik saja. Anda harus melakukan ini di halaman admin Anda juga.

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

Kode RLT
sumber
5
Bagaimana cara memperbaikinya untuk semua pengguna toko? Saya dapat melihat bahwa banyak pengguna melihat kesalahan ini dalam peninggalan baru dan saya kira mereka tidak akan menghapus penyimpanan lokal mereka (tetapi mereka mungkin hanya meninggalkan halaman).
bpoiss
Terima kasih atas jawaban ini - ini menyelamatkan saya berjam-jam :)
artwoz
Saya juga mendapatkan kesalahan ini, ternyata itu disebabkan oleh header yang sudah mengirim kesalahan oleh modul lain. Ini membantu untuk menambahkan console.log (jqXHR) sesaat sebelum kesalahan dilemparkan. Lihat juga magento.stackexchange.com/questions/198333/… di bagian bawah
Isolde
Saya mencoba semua hal yang Anda katakan tetapi masalah yang sama. screencast.com/t/XEueQ00Foqs3
Pratik Mehta
untungnya menemukan ini sebelum menghabiskan berjam-jam, saya telah mencoba untuk membatalkan bagian yang salah bernama, dan ini di-cache.
Joel Davey
1

Kesalahan ini mengatakan bahwa data sumber tidak ditentukan di sectionSourceMaplokasi di Magento\Customer\CustomerData\SectionPoolkelas. The paypal-billing-agreementData didefinisikan dalam 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>

Jadi, mungkin modul paypal dinonaktifkan di toko atau modul pihak ketiga menonaktifkannya dengan cara yang tidak benar.

Untuk men-debug masalah itu, buka file vendor/magento/module-customer/CustomerData/SectionPool.phpdan periksa bagian apa yang dimuat dalam getSectionsDatametode ini. Selain itu, Anda dapat mencoba memanggil metode di getSectionsData(['paypal-billing-agreement'])suatu tempat dari kode khusus, dan memeriksa langkah demi langkah mengapa data ini tidak dimuat.

Siarhey Uchukhlebau
sumber
1
Sepertinya saya menonaktifkan modul Paypal di app / etc / config.php tetapi tidak dinonaktifkan dengan "benar" sehingga menyebabkan masalah ini. Terima kasih atas sarannya!
Lez
@Lez, saya senang membantu Anda
Siarhey Uchukhlebau
1

Bagi saya, saya bisa melihat bahwa masalahnya ada hubungannya dengan item yang baru saja saya tambahkan ke troli.

masukkan deskripsi gambar di sini

Jadi saya menjalankan kueri berikut pada DB untuk menghapus semua item kutipan dari akun pengguna saya:

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

Setelah itu masalah hilang :)

Holly
sumber
0

Harap hapus catatan entri "Tema Porto" dari tabel "tema". Catatan akan otomatis dibuat lagi. Dan tetapkan kembali Situs Web dengan tema Porto ini lagi dan periksa.

Sathya
sumber