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

11

Estou usando o Magento 2.2 com o tema do Porto e obtendo um [object Object]erro de javascript na customer-data.jslinha 90 no console depois de fazer login na loja e atualizar a página ou alternar para outra página.

Eu testei isso no Firefox, Chrome, IE 11 e Edge e ele só aparece no Firefox (o navegador que mais uso).

Não está causando problemas sérios (até onde eu sei), mas gostaria de resolver esse problema.

erro de objeto

linha onde o erro acontece

Linha 90 do customer-data.jsarquivo é: "throw new Error(jqXHR);".

Dentro do objeto jqXHR, há uma mensagem de resposta JSON:

A fonte da seção {"message": "\" paypal-billing-contract \ "não é suportada"}

Eu já vi algumas sugestões por aí, mas a maioria delas girava em torno da limpeza de cache e de arquivos estáticos.

Eu tentei: limpar o cache e os cookies do Firefox, limpar arquivos estáticos Magento, cache e cache de armazenamento, mas nada funcionou até agora ...

E não tenho muita certeza do que mais fazer ... qualquer ajuda seria apreciada.

Editar / Solução

A causa do erro foi que desabilitei o módulo Paypal, mas não limpei o cache local / de armazenamento do navegador.

Dentro desse cache, havia uma certa chamada para o módulo paypal que não podia ser processada; portanto, ele retornou um erro JS como este.

A limpeza desse cache corrigiu o problema.

Lez
fonte
Primeiro, verifique o que está dentro do objeto jqXHR. O método de construção da classe Error esperava a mensagem de sequência (ou Objeto com o toStringmétodo).
Siarhey Uchukhlebau
@SiarheyUchukhlebau Editei a pergunta com o conteúdo do jqXHR.
Lez
onde você encontrou o jqXHR Oject?
Krybbio # 26/18
@krybbio Você pode vê-lo durante a depuração na linha 90 do arquivo customer-data.js. Você também pode vê-lo no depurador do navegador na guia rede (o nome depende do navegador) -> você verá um "código de erro 400 - solicitação incorreta" e, dentro da solicitação, verá o URL da solicitação e a mensagem de resposta.
Lez 26/03

Respostas:

39

Eu literalmente desperdicei alguns dias tentando depurar esse problema e finalmente consegui uma solução definitiva ou uma solução alternativa que eu chamaria. Espero que possa salvar algumas outras pessoas da dor de cabeça que tenho atualmente!

Percebi pela primeira vez que esse erro aparece quando eu alterno da compilação do lado do cliente para a do lado do servidor Stores->Configuration->Advanced->Developer->Frontend Development Workflow

customer-data.jsDecidi que usa o localStorage no próprio navegador para armazenar uma variedade de informações, para que você possa limpar o cache do Magento tudo o que quiser e ainda terá problemas.

TLDR:

A correção no Google Chrome é pressionada F12 para abrir a barra de ferramentas do desenvolvedor e selecione a guia Aplicativo. Limpe o armazenamento local, armazenamento de sessão e cookies. Recarregue a página e tudo deve ficar bem. Você também precisará fazer isso na sua página de administração.

Crédito: https://github.com/magento/magento2/issues/6410#issuecomment-243704461

RLTcode
fonte
5
Como consertar isso para todos os usuários da loja? Percebo que muitos usuários veem esse erro na nova relíquia e acho que não limparão seu armazenamento local (mas provavelmente sairão da página).
bpoiss
Obrigado por esta resposta - ele me salvou muitas horas :) #
artwoz
Eu também recebi esse erro, acabou sendo causado por cabeçalhos que já enviaram erro por outro módulo. Ajuda a adicionar um console.log (jqXHR) imediatamente antes do erro ser lançado. Veja também magento.stackexchange.com/questions/198333/… na parte inferior
Isolde
Eu tentei todas as coisas que você disse, mas o mesmo problema. screencast.com/t/XEueQ00Foqs3 #
Pratik Mehta
felizmente encontrei isso antes de passar muitas horas, eu tentei invalidar a seção nomeada incorretamente em algum momento, e isso foi armazenado em cache.
Joel Davey
1

Este erro diz que os dados de origem não estão especificados sectionSourceMapno local da Magento\Customer\CustomerData\SectionPoolclasse. Os paypal-billing-agreementdados são definidos no arquivo 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>

Portanto, provavelmente o módulo paypal foi desativado na loja ou algum módulo de terceiros está desativando-o da maneira incorreta.

Para depurar esse problema, abra o arquivo vendor/magento/module-customer/CustomerData/SectionPool.phpe verifique quais seções estão carregando no getSectionsDatamétodo. Além disso, você pode tentar chamar o método em getSectionsData(['paypal-billing-agreement'])algum lugar a partir de um código personalizado e verificar passo a passo por que esses dados não estão sendo carregados.

Siarhey Uchukhlebau
fonte
11
Parece que o módulo Paypal está desabilitado no app / etc / config.php, mas não foi desabilitado "da maneira correta", por isso causou esse problema. Obrigado pelas sugestões!
quer
@Lez Fico feliz em ajudá-lo
Siarhey Uchukhlebau
1

Para mim, pude ver que o problema tinha algo a ver com o item que acabara de adicionar ao carrinho.

insira a descrição da imagem aqui

Por isso, executei a seguinte consulta no banco de dados para remover todos os itens de cotação da minha conta de usuário:

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

Depois disso, o problema desapareceu :)

Azevinho
fonte
0

Exclua os registros das entradas "Porto Theme" da tabela "theme". Os registros serão criados automaticamente novamente. E reatribua sites com esse tema do Porto novamente e verifique.

Sathya
fonte