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


11

我使用带有Porto主题的Magento 2.2,登录到商店并刷新页面或切换到另一页面后,在控制台的第90行遇到了[object Object]javascript错误customer-data.js

我在Firefox,Chrome,IE 11和Edge中进行了测试,并且只在Firefox(我最常使用的浏览器)中显示。

它不会引起任何严重的问题(据我所知),但是我想解决此问题。

对象对象错误

发生错误的行

customer-data.js文件的第90行是:"throw new Error(jqXHR);"

在jqXHR对象内部是JSON响应消息:

{“消息”:“ \”“ paypal-billing-agreement \”部分来源不受支持”}

我已经看到了一些建议,但是大多数建议都是围绕清理缓存和静态文件展开的。

我尝试过:清除Firefox缓存和cookie,清理Magento静态文件,缓存和存储缓存,但到目前为止没有任何效果...

而且我不太确定该怎么做...任何帮助将不胜感激。

编辑/解决方案

错误的原因是我禁用了Paypal模块,但没有清除浏览器的本地/存储缓存。

在此缓存中,有一个对paypal模块的特定调用,无法处理,因此它返回了这样的JS错误。

清除此缓存可解决此问题。


首先,检查Object中的内容jqXHR。Error类的构造方法需要字符串消息(或带toString方法的Object )。
Siarhey Uchukhlebau

@SiarheyUchukhlebau我用jqXHR内容编辑了问题。
Lez

您在哪里找到jqXHR Oject?
krybbio

@krybbio您可以在customer-data.js文件的第90行进行调试时看到它。您还可以在网络标签上的浏览器调试器中看到它(名称取决于浏览器)->您将看到“ 400错误代码-错误的请求”,在请求中您将看到请求url和响应消息。
Lez

Answers:


39

我实际上浪费了几天时间尝试调试此问题,最后得到了一个确定的解决方案或变通解决方案,我称之为。希望它可以减轻其他人的头痛感!

我首先注意到当我从客户端编译器切换到服务器端编译时,会出现此错误 Stores->Configuration->Advanced->Developer->Frontend Development Workflow

然后,我确定customer-data.js使用浏览器本身中的localStorage来存储各种信息,因此您可以清除所需的Magento Cache,仍然会遇到问题。

TLDR:

按F12键打开Goog​​le Chrome浏览器中的修复程序,以打开“开发人员工具栏”,然后选择“应用程序”标签。清除本地存储,会话存储和Cookies。重新加载页面,一切都应该顺利。您也必须在管理页面上执行此操作。

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


5
如何为商店的所有用户解决此问题?我可以看到许多用户在新的文物中看到了此错误,并且我想他们不会清除其本地存储(但他们很可能会离开页面)。
bpoiss

谢谢您的回答-它为我节省了很多时间:)
artwoz

我也遇到了这个错误,事实证明这是由另一个模块已经发送的头文件引起的。它有助于在抛出错误之前添加console.log(jqXHR)。另请参阅magento.stackexchange.com/questions/198333/…在底部
Isolde

我尝试了所有您说过的事情,但都是相同的问题。 screencast.com/t/XEueQ00Foqs3
Pratik Mehta

值得庆幸的是,在花了很多小时才发现了这个问题,我曾尝试使某个错误命名的节无效,并且将其缓存了。
乔尔·戴维

1

此错误表明未在该类的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'])从自定义代码中的某处调用该方法,并逐步检查为什么不加载此数据。


1
似乎我在app / etc / config.php中禁用了Paypal模块,但并未“以正确的方式”禁用它,因此导致了此问题。感谢你的建议!
Lez

@Lez我很高兴为您提供帮助
Siarhey Uchukhlebau

1

对我来说,我可以看到问题与我刚添加到购物车中的物品有关。

在此处输入图片说明

因此,我在数据库上运行以下查询,以从我的用户帐户中删除所有报价项目:

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

之后,问题就消失了:)


0

请从“主题”表中删除“波尔图主题”条目的记录。记录将再次自动创建。并重新分配具有此Porto主题的网站并检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.