Клиент Magento 2-данные.js:90:23 [объект объекта]
Я использую Magento 2.2 с темой Porto и получаю [object Object]
ошибку javascript в строке 90 customer-data.js
в консоли после входа в магазин и обновления страницы или перехода на другую страницу.
Я протестировал это в Firefox, Chrome, IE 11 и Edge, и это отображается только в Firefox (браузер, который я в основном использую).
Это не вызывает никаких серьезных проблем (насколько я могу судить), но я хотел бы решить эту проблему вопрос.
Строка 90 файла customer-data.js
является: "throw new Error(jqXHR);"
.
Внутри объекта jqXHR находится ответное сообщение JSON:
{"сообщение": "\"paypal-соглашение о выставлении счетов\" источник раздела не поддерживается"}
Я видел там пару предложений, но большинство из них касалось очистки кэша и статических файлов.
Я пробовал: очистка кэша firefox и файлов cookie, очистка статических файлов Magento, кэш и кэш-память, но пока ничего не работало...
И я не совсем уверен, что еще можно сделать... любая помощь была бы признательна.
Редактирование/Решение
Причиной ошибки было то, что я отключил модуль Paypal, но не очистил локальный кэш браузера/хранилища.
Внутри этого кэша был определенный вызов модуля PayPal, который не мог быть обработан, поэтому он вернул ошибку JS, подобную этой.
Очистка этого кэша устранила проблему.
4 answers
Я буквально потратил несколько дней, пытаясь отладить эту проблему, и, наконец, получил определенное решение или решение, которое я бы назвал. Надеюсь, это избавит нескольких других людей от головной боли, которая у меня сейчас есть!
Я впервые заметил, что эта ошибка появляется, когда я переключаюсь с компиляции на стороне клиента на стороне сервера в Stores->Configuration->Advanced->Developer->Frontend Development Workflow
Затем я определил, что customer-data.js
использует локальное хранилище в самом браузере для хранения различной информации, поэтому вы можете очистить кэш Magento, сколько захотите и у вас все равно будут проблемы.
ДВУ:
Исправление в Google Chrome - нажмите F12, чтобы открыть панель инструментов разработчика, затем выберите вкладку Приложения. Очистите Локальное хранилище, Хранилище сеансов и файлы cookie. Перезагрузите страницу, и все должно быть хорошо. Вам также придется сделать это на своей странице администратора.
Кредит: https://github.com/magento/magento2/issues/6410#issuecomment-243704461
Эта ошибка говорит о том, что исходные данные не указаны в sectionSourceMap
, расположенном в классе Magento\Customer\CustomerData\SectionPool
. Данные paypal-billing-agreement
определены в файле 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>
Таким образом, возможно, модуль PayPal был отключен в магазине или какой-то сторонний модуль отключил его неправильным способом.
Для устранения этой проблемы откройте файл vendor/magento/module-customer/CustomerData/SectionPool.php
и проверьте, какие разделы загружаются в методе getSectionsData
. Кроме того, вы можете попробовать вызвать метод getSectionsData(['paypal-billing-agreement'])
где-нибудь из пользовательского кода и проверить шаг за шагом, почему эти данные не загружаются.
Для меня я мог видеть, что проблема как-то связана с товаром, который я только что добавил в корзину.
Поэтому я выполнил следующий запрос в БД, чтобы удалить все элементы котировок из моей учетной записи пользователя:
DELETE FROM quote WHERE customer_email = '[email protected]';
После этого проблема исчезла:)
Пожалуйста, удалите записи записей "Тема Порту" из таблицы "тема". Записи будут автоматически созданы снова. И снова переназначьте веб-сайты с этой темой Порту и проверьте.