Magento 2 customer-data.js:90:23 [オブジェクトオブジェクト]


11

Magento 2.2をPortoテーマで使用していて、ストアにログインしてページを更新するか、別のページに切り替えた後、コンソールの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エラーが返されました。

このキャッシュをクリアすると問題が解決しました。


まず、オブジェクトの内部を確認しjqXHRます。Errorクラスの構成メソッドは、文字列メッセージ(またはtoStringメソッドを持つオブジェクト)を予期していました。
Siarhey Uchukhlebau

@SiarheyUchukhlebau jqXHRの内容で質問を編集しました。
Lez

jqXHR Ojectはどこで見つけましたか?
krybbio

@krybbioデバッグ中に、customer-data.jsファイルの90行目で確認できます。また、ブラウザのデバッガのネットワークタブに表示されます(名前はブラウザによって異なります)->「400エラーコード-不正なリクエスト」が表示され、リクエスト内にリクエストのURLとレスポンスメッセージが表示されます。
Lez

回答:


39

私は文字通りこの問題をデバッグしようとして数日間無駄にしており、最終的に明確な解決策または回避策を手に入れました。うまくいけば、私が現在抱えている頭痛の種を他の数人の人が救うことができます!

でクライアント側からサーバー側のコンパイルに切り替えると、最初にこのエラーが表示されることに気付きました Stores->Configuration->Advanced->Developer->Frontend Development Workflow

次にcustomer-data.js、ブラウザ自体のlocalStorage を使用してさまざまな情報を保存することを決定しました。これにより、Magentoキャッシュを必要なだけクリアしても問題が解決されません。

TLDR:

Google Chromeでの修正は、F12キーを押して開発者ツールバーを開き、[アプリケーション]タブを選択します。ローカルストレージ、セッションストレージ、およびCookieをクリアします。ページをリロードすると、すべて正常に動作するはずです。これは、管理ページでも行う必要があります。

クレジット:https : //github.com/magento/magento2/issues/6410#issuecomment-243704461


5
ショップのすべてのユーザーに対してこれを修正する方法は?多くのユーザーがnew relicでこのエラーを確認し、ローカルストレージを消去しないと思います(ただし、ページを離れる可能性があります)。
bpoiss

この答えをありがとう-それは私に多くの時間を節約しました:)
artwoz 2018

私もこのエラーを受け取りました。原因は、別のモジュールによるヘッダー送信エラーが原因であることが判明しました。エラーがスローされる直前にconsole.log(jqXHR)を追加すると役立ちます。下部のmagento.stackexchange.com/questions/198333/…も参照してください
Isolde

私はそれらが言ったすべてのものを試しましたが、同じ問題です。 screencast.com/t/XEueQ00Foqs3
Pratikメータ

ありがたいことに、何時間も費やす前にこれを見つけ、ある時点で間違った名前のセクションを無効にしようとしたところ、キャッシュされました。
Joel Davey

1

このエラーは、ソースデータがクラスにsectionSourceMapあるに指定されていないことを示していますMagento\Customer\CustomerData\SectionPoolpaypal-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>

そのため、おそらく店でペイパルモジュールが無効になっているか、一部のサードパーティモジュールが正しくない方法で無効にしています。

その問題をデバッグするには、ファイルvendor/magento/module-customer/CustomerData/SectionPool.phpを開き、getSectionsDataメソッドにロードされているセクションを確認します。さらに、getSectionsData(['paypal-billing-agreement'])カスタムコードからどこかでメソッドを呼び出して、このデータが読み込まれない理由を段階的に確認できます。


1
app / etc / config.phpでPaypalモジュールが無効になっているようですが、「正しい方法」で無効にされていなかったため、この問題が発生しました。提案ありがとうございます!
Lez

@Lez喜んでお手伝いします
Siarhey Uchukhlebau

1

私にとっては、カートに追加したばかりのアイテムに問題があることがわかりました。

ここに画像の説明を入力してください

そこで、DBで次のクエリを実行して、ユーザーアカウントからすべての見積もりアイテムを削除しました。

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

その後、問題は消えました:)


0

「テーマ」テーブルから「ポルトテーマ」エントリのレコードを削除してください。レコードは再び自動作成されます。そして、このポルトをテーマにしたウェブサイトを再度割り当てて確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.