Инструменты разработчика Chrome не показывают ответ, даже если возвращаемое содержимое имеет заголовок Content-Type: text / html; кодировка = UTF-8

143

Почему мои инструменты разработчика Chrome показывают «Не удалось отобразить данные ответа», когда возвращаемый контент имеет тип text / html?

Какая альтернатива, чтобы увидеть возвращенный ответ в инструментах разработчика?

randominstanceOfLivingThing
источник
Я обнаружил, что Microsoft Edge Dev (на основе Chromium) не дает мне этой ошибки.
Для имени
Вы пробовали проверить в Firefox?
Раджендра Кумар Ванкадари

Ответы:

200

Я думаю, что это происходит только тогда, когда вы отметили «Сохранить журнал» и пытаетесь просмотреть данные ответа на предыдущий запрос после того, как ушли.

Например, я просмотрел Ответ на загрузку этого вопроса переполнения стека. Вы можете видеть это.

Данные ответа

Во второй раз я перезагрузил эту страницу, но не посмотрел на заголовки или ответ. Я перешел на другой сайт. Теперь, когда я смотрю на ответ, он показывает «Не удалось загрузить данные ответа».

Нет данных ответа

Это известная проблема , которая уже давно обсуждается и обсуждается. Однако есть обходной путь, при котором вы делаете паузу onunload, поэтому вы можете просмотреть ответ до того, как он уйдет, и тем самым не потерять данные при отъезде.

window.onunload = function() { debugger; }
Гидеон Пизер
источник
186
Отсутствие возможности видеть данные ответов почти полностью убивает точку «сохранения журнала»!
Амальговинус
1
Ваш обходной путь window.onunload работал отлично, спасибо!
Шейн N
25
Нет, в Chrome 61 это также может произойти, если «Сохранить журнал» не отмечен и не покидает страницу.
ИЛИ Mapper
Данные ответов могут быть большими, а с сохранением журнала проверки на неопределенный срок может значительно ухудшиться производительность DevTool. Чтобы отбросить ответные данные при навигации, вероятно, было сделано по замыслу. Если у вас есть предложения, прокомментируйте ветку, связанную выше.
Гидеон Пайзер
2
По-прежнему onunloadвозникает проблема с Chrome 73.0, по какой-то причине это исправление не работает для меня.
Onza
46

Для тех, кто получает ошибку при запросе данных JSON:

Если вы запрашиваете данные JSON, JSON может быть слишком большим, и это может вызвать ошибку.

Мое решение состоит в том, чтобы скопировать ссылку запроса на новую вкладку ( getзапрос из браузера), скопировать данные в онлайн-просмотрщик JSON, где у вас есть автоматический анализ, и работать над ним там.

Томз
источник
14
не совсем решение, хотя Я работаю с аутентификацией и тому подобное. Не определяет назначение инструментов разработчика. Кто-то, вероятно, должен создать где-нибудь отчет об ошибках. Правильный ответ здесь, хотя
phil294
1
Этот лимит настраивается каким-либо образом?
Виллем Хенгевельд
В моем случае это произошло на 23 МБ, что является глупым большим ответом JSON .... Я открыл проблему, чтобы сделать сообщение об ошибке более информативным.
кодек
Я вижу проблему для 6MB JSON :(
Ли Ганн
Также удар по этому ответу JSON около 6 МБ несжатый.
miki noidea
39

Как описывает Гидеон, это известная проблема с Chrome, которая была открыта более 5 лет без явного интереса к ее устранению.

К сожалению, в моем случае window.onunload = function() { debugger; }обходной путь тоже не сработал. На сегодняшний день лучший обходной путь, который я нашел, - это использование Firefox, который отображает данные ответов даже после навигации. В Firefox devtools также есть много полезных функций, отсутствующих в Chrome, таких как синтаксис, подсвечивающий данные ответа, если он представляет собой HTML, и автоматический синтаксический анализ, если это JSON.

сурьма
источник
4
Вау, отличная вещь. Необходимость отладки ошибки, которая возникает только в Chrome, а не в Firefox. Так что тоже не вариант для меня. Серьезно, почему все говорят, что веб-инструменты Chrome намного лучше, чем Firefox? Похоже, они не пробовали Firefox годами.
mozzbozz
11
Chrome также не имеет удобной опции запроса «изменить и отправить» в Firefox.
Сурьма
1
Да ... Также использовал FF для достижения цели ... Работал, как и ожидалось. Мы живем предательскими временами!
nmirceac
У @Antimony chrome действительно была опция «Переслать» на долгое время, но в одном из последних выпусков они удалили даже это ... К счастью, можно быстро выполнить fetch(...copied link...)в консоли и наблюдать за ответом на вкладке сети
Иван Гушняк
Все еще получаю это даже сейчас. Для громкого крика я бы предпочел, чтобы они исправили то, что у них уже было, вместо того, чтобы вводить в консоль бессмысленные функции, такие как тщательная оценка, и пренебрегали качеством их основных инструментов для разработчиков.
Thephpdev
20

Как описывает Гидеон, это известная проблема.
Для использования window.onunload = function() { debugger; }вместо.
Но вы можете добавить точку останова на вкладке Источник, чтобы решить вашу проблему. как это: введите описание изображения здесь

Fitz
источник
В чем преимущество вкладки «Источник» window.onunload = function() { debugger; }?
Михаил Малостанидис
1
вам не нужно писать код для отладчика, и вы можете отлаживать в более высоких средах, где вы можете перепрыгивать между страницами и не сохранять одно и то же окно
Parijat Kalia
window.onunload = function() { debugger; }не сработало для меня, это сработало. Спасибо!
19
11

«Не удалось отобразить данные ответа» также может произойти, если вы выполняете междоменные запросы, а удаленный хост неправильно обрабатывает заголовки CORS. Проверьте консоль js на наличие ошибок.

deweydb
источник
2
хром все еще не работает из-за отсутствия ответа (в любой форме) - FF работал на меня
nmirceac
Ты прав! Но именно поэтому мне нужен ответ, чтобы понять, почему мой запрос не выполняется. С curl все работает нормально, но chrome все равно не работает с «Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок« Access-Control-Allow-Origin »»
AHA
4

Если вы делаете запрос AJAX с помощью fetch, ответ не отображается, если он не прочитан с помощью .text(),.json() и т.д.

Если вы просто делаете:

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

ответ не будет показан в инструментах разработчика.
Он появляется после запуска:

r.then(r => r.text())
gre_gor
источник
1

Для тех, кто получил эту ошибку при запросе больших данных JSON, как упоминает Blauhirn, это не решение, чтобы просто открыть запрос в новой вкладке, если вы используете заголовки аутентификации и тому подобное.

К счастью, в chrome есть и другие параметры, такие как Копировать -> Копировать как скручивание. Выполнение этого вызова из коммандолина через cURL будет точной копией исходного вызова.

Я добавил > ~/result.jsonв последнюю часть коммандос, чтобы сохранить результат в файл. В противном случае он будет выведен на консоль.

thephper
источник
1
Точная реплика бесполезна, если состояние сервера, предоставляющего ответ, изменилось. Так что для меня, это должно ждать около 40 минут, чтобы событие произошло, и это событие вызывает новую страницу, это полностью нарушает все использование. Это должна быть опция, которую можно переключать. К сожалению, для обычных посетителей вопроса, указанного в предыдущем комментарии, нет возможности голосовать или комментировать, если вы не являетесь частью их команды: /
David Mårtensson