As ferramentas de desenvolvimento do Chrome falham em mostrar resposta, mesmo o conteúdo retornado tem o cabeçalho Content-Type: text / html; charset = UTF-8

141

Por que minhas ferramentas de desenvolvedor do Chrome mostram "Falha ao mostrar dados de resposta" em resposta quando o conteúdo retornado é do tipo text / html?

Qual é a alternativa para ver a resposta retornada nas ferramentas do desenvolvedor?

randominstanceOfLivingThing
fonte
Descobri que o Microsoft Edge Dev (baseado no Chromium) não me fornece esse erro.
Para o nome

Respostas:

198

Acho que isso só acontece quando você tem 'Preservar log' marcado e está tentando exibir os dados de resposta de uma solicitação anterior depois de navegar.

Por exemplo, eu vi a resposta para carregar esta pergunta do estouro de pilha. Você pode ver isso.

Dados de resposta

Na segunda vez, recarreguei esta página, mas não observei os cabeçalhos ou a resposta. Eu naveguei para um site diferente. Agora, quando olho para a resposta, ela mostra 'Falha ao carregar os dados da resposta'.

Sem dados de resposta

Esse é um problema conhecido , que já existe há algum tempo e debateu muito. No entanto, há uma solução alternativa, na qual você faz uma pausa onunload, para poder visualizar a resposta antes que ela saia, e, portanto, não perde os dados ao navegar.

window.onunload = function() { debugger; }
Gideon Pyzer
fonte
184
Não ser capaz de ver os dados da resposta quase totalmente mata o ponto de "preservar log"!
Amalgovinus
1
Sua solução window.onunload funcionou muito bem, obrigado!
Shane N
25
Não, no Chrome 61, isso definitivamente também pode acontecer se "Preservar log" não estiver marcado e sem sair da página.
OU mapeador
Os dados de resposta podem ser grandes e, com o registro de preservação verificado indefinidamente, acumulariam significativamente o desempenho do DevTool. Descartar os dados de resposta na navegação provavelmente foi feito por design. Se você tiver algumas sugestões, comente o tópico acima.
Gideon Pyzer
2
Ainda com esse problema no chrome 73.0, a onunloadcorreção não funciona para mim por algum motivo.
Onza
46

Para aqueles que estão recebendo o erro ao solicitar dados JSON:

Se você está solicitando dados JSON, o JSON pode ser muito grande e é isso que causa o erro.

Minha solução é copiar o link de solicitação para uma nova guia ( getsolicitação do navegador), copiar os dados para o visualizador JSON on-line, onde você tem a análise automática e trabalha nele.

Tomz
fonte
14
não é realmente uma solução. Eu trabalho com autenticação e tal. Desafia o objetivo das ferramentas de desenvolvimento. Alguém provavelmente deveria criar algum relatório de bug em algum lugar. Resposta correta aqui embora
phil294
1
Esse limite é configurável de alguma forma?
Willem Hengeveld
No meu caso, aconteceu com 23 MB, o que é uma resposta JSON grande e estúpida .... Abri um problema para que a mensagem de erro fosse mais descritiva.
boatcoder
Estou vendo o problema de 6MB JSON :(
Lee Gunn
Também bater isso na resposta JSON em torno de 6mb descompactado.
miki noidea 04/06
39

Conforme descrito por Gideon, esse é um problema conhecido do Chrome que está aberto há mais de 5 anos, sem nenhum interesse aparente em corrigi-lo.

Infelizmente, no meu caso, a window.onunload = function() { debugger; }solução alternativa também não funcionou. Até agora, a melhor solução alternativa que encontrei é usar o Firefox, que exibe dados de resposta mesmo após uma navegação. Os devtools do Firefox também têm muitos recursos interessantes ausentes no Chrome, como sintaxe, destacando os dados de resposta se for html e analisando-o automaticamente se for JSON.

Antimônio
fonte
4
Uau, ótimo. Precisando depurar um erro que ocorre apenas no Chrome, não no Firefox. Então também não há opção para mim. Sério, por que todos dizem que as ferramentas da web do Chrome são muito melhores que as do Firefox? Parece que eles não experimentam o Firefox há anos.
mozzbozz
11
O Chrome também não possui a conveniente opção de solicitação "editar e reenviar" do Firefox.
Antimony
1
Sim ... Também usei o FF para fazer o trabalho ... Funcionou conforme o esperado. Estamos vivendo tempos traiçoeiros!
nmirceac 30/01
O @Antimony chrome teve a opção "Reenviar" por um bom tempo, mas em um dos últimos lançamentos eles removeram mesmo isso ... Felizmente, é possível acelerar rapidamente fetch(...copied link...)no console e observar a resposta na guia "Rede"
Ivan Hušnjak
Ainda estou conseguindo isso agora. Por falar em voz alta, prefiro que eles consertem o que já têm, em vez de introduzir recursos inúteis, como uma avaliação ágil no console e negligenciar a qualidade de suas ferramentas fundamentais de desenvolvedor.
thephpdev 4/03
20

Conforme descrito por Gideon, esse é um problema conhecido.
Para uso em seu window.onunload = function() { debugger; }lugar.
Mas você pode adicionar um ponto de interrupção na guia Origem e resolver o seu problema. como isso: insira a descrição da imagem aqui

Fitz
fonte
Qual é a vantagem da guia Origem window.onunload = function() { debugger; }?
Mihail Malostanidis 22/09
1
você não precisa escrever o código para o depurador, e você pode depurar em ambientes mais elevadas, onde você talvez pulando entre páginas e não preservam a mesma janela
Parijat Kalia
window.onunload = function() { debugger; }não funcionou para mim, isso funcionou. obrigado!
aexl
11

"Falha ao mostrar dados de resposta" também pode ocorrer se você estiver executando solicitações de domínio cruzado e o host remoto não estiver manipulando adequadamente os cabeçalhos do CORS. Verifique seu console js quanto a erros.

deweydb
fonte
2
chrome ainda está quebrado por não mostrar a resposta (de qualquer forma) - FF trabalhou para mim
nmirceac 30/01
Você está certo! Mas é exatamente por isso que preciso da resposta para entender por que meu pedido está falhando. Tudo funciona bem com o curl, mas o chrome ainda falha com "A resposta à solicitação de comprovação não passa na verificação do controle de acesso: nenhum cabeçalho 'Acesso-Controle-Permitir-Origem' está presente no recurso solicitado"
AHA
4

Se você fizer um pedido de AJAX com fetch, a resposta não é mostrado a menos que seja lido com .text(), .json(), etc.

Se você apenas fizer:

 r = fetch("/some-path");

a resposta não será mostrada nas ferramentas de desenvolvimento.
Ele aparece depois que você executa:

r.then(r => r.text())
gre_gor
fonte
1

Para quem recebe esse erro ao solicitar dados JSON grandes, não é, como mencionado por Blauhirn, uma solução para abrir a solicitação em uma nova guia se você estiver usando cabeçalhos de autenticação e afins.

Por fim, o chrome possui outras opções, como Copiar -> Copiar como ondulação. A execução dessa chamada do commandoline por meio do cURL será uma réplica exata da chamada original.

Eu adicionei > ~/result.jsona última parte do comando para salvar o resultado em um arquivo. Caso contrário, ele será transmitido para o console.

thephper
fonte
1
Uma réplica exata não será útil se o estado do servidor que fornecer a resposta tiver sido alterado. Então, para mim, que tenho que esperar cerca de 40 minutos para que um evento aconteça, e esse evento aciona uma nova página, isso interrompe completamente o uso. Deve ser uma opção que pode ser alternada. Infelizmente, não há opção de voto ou comentário para visitantes comuns do problema listado em um comentário anterior, a menos que você faça parte da equipe deles: /
David Mårtensson