Інструменти для розробників Chrome не показують відповідь, навіть повернення вмісту має заголовок Content-Type: text / html; charset = UTF-8


143

Чому мої інструменти для розробників хрому показують "Не вдалося показати дані відповіді" у відповідь, коли вміст, що повертається, має текст / html?

Яка альтернатива бачити відповідь у інструментах для розробників?


Я виявив, що Microsoft Edge Dev (заснований на Chromium) не дає мені цієї помилки.
— Для імені

Ви спробували перевірити в Firefox?
— Раджендра кумар Ванкадарі

Відповіді:


200

Я думаю, що це відбувається лише тоді, коли ви встановили прапорець "Зберегти журнал" і ви намагаєтесь переглянути дані відповіді попереднього запиту після того, як ви відійшли.

Наприклад, я переглянув Відповідь на завантаження цього питання про переповнення стека. Ви можете це побачити.

Дані відповідей

Вдруге я перезавантажив цю сторінку, але не подивився на заголовки чи відповіді. Я перейшов на інший веб-сайт. Тепер, коли я дивлюсь на відповідь, він показує "Не вдалося завантажити дані відповіді".

Немає даних про відповіді

Це відома проблема , яка існує вже деякий час, і багато дискутували. Однак є рішення, в якому ви робите паузу onunload, і ви можете переглядати відповідь, перш ніж вона відправиться, і, таким чином, не втрачає даних при навігації.

window.onunload = function() { debugger; }

186
Неможливо побачити дані відповідей майже повністю вбиває точку "збереження журналу"!
— Амальговінус

1
Ваш window.onunload вирішив чудово, дякую!
— Шейн N

25
Ні, в Chrome 61 це однозначно може статися, якщо пункт "Зберегти журнал" не встановлено , і не залишаючи сторінку.
— АБО Mapper

Дані відповідей можуть бути великими, і якщо журнал збереження перевіряється на невизначений термін, це дозволило б значно завадити роботі DevTool. Щоб відкинути дані відповіді під час навігації, ймовірно, було зроблено дизайном. Якщо у вас є якісь пропозиції, прокоментуйте нитку, пов'язану вище.
— Гедеон Пізер

2
Проблема все ще відчуває хром 73.0, onunloadвиправлення чомусь не працює для мене.
— Онза

46

Для тих, хто отримує помилку під час запиту даних JSON:

Якщо ви запитуєте дані JSON, JSON може бути занадто великим, і це може спричинити помилку.

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


14
насправді не рішення. Я працюю з аутентифікацією та ін. Визначає призначення інструментів розробки. Мабуть, хтось повинен десь створити бугрепорт. Тут правильна відповідь
— phil294

1
Чи можна налаштувати цю межу яким-небудь чином?
— Віллем Хенгевельд

У моєму випадку це сталося в 23 Мб, що є дурною великою відповіддю JSON .... Я відкрив питання, щоб повідомлення про помилку було більш описовим.
— boatcoder

Я бачу проблему для 6 МБ JSON :(
— Лі Ганн

Також потрапляючи на це у відповідь JSON навколо 6 Мб, нестиснута.
— miki noidea

39

Як описав Gideon, це відома проблема із 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

@Antimin chrome досить довго мав опцію "Повторити", але в одному з останніх випусків вони видалили навіть це ... На щастя, можна швидко зробити fetch(...copied link...)консоль і спостерігати за реакцією на вкладці мережі
— Іван Хушняк

Досі отримую це навіть зараз. Для плачу вголос я краще їм виправити те, що вони вже мають, а не ввести безглузді функції, такі як прагнення до оцінки в консолі і нехтувати якістю основних інструментів для розробників.
— thephpdev

20

Як описав Гедеон, це відома проблема.
Для використання window.onunload = function() { debugger; }замість цього.
Але ви можете додати точку розриву на вкладці "Джерело", щоб вирішити свою проблему. подобається це: введіть тут опис зображення


У чому перевага вкладки "Джерело" над window.onunload = function() { debugger; }?
— Михайло Малостанідіс

1
вам не потрібно писати код для налагоджувача, і ви можете налагоджувати у більш високих середовищах, де ви, можливо,
— переходите

window.onunload = function() { debugger; }не працювало для мене, це було. Дякую!
— aexl

11

"Не вдалося показати дані відповіді" також може статися, якщо ви робите запити між доменами та віддалений хост неправильно обробляє заголовки CORS. Перевірте свою консоль js на наявність помилок.


2
хром все ще зламаний за те, що не показував відповіді (у будь-якій формі) - FF працював на мене
— nmirceac

Ти правий! Але саме тому мені потрібна відповідь, щоб зрозуміти, чому мій запит не працює. Все добре працює з завитком, але хромування все-таки не вдається "Відповідь на запит перед польотом не проходить перевірку контролю доступу: на запитуваному ресурсі немає заголовка" Access-Control-Allow-Origin "
— AHA

4

Якщо ви робите запит AJAX за допомогою fetch, відповідь не відображається, якщо він не прочитаний .text(),.json() і так далі

Якщо ви просто зробите:

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

відповідь не відображатиметься в інструментах розробки.
Він відображається після запуску:

r.then(r => r.text())

1

Для тих, хто отримує цю помилку під час запиту великих даних JSON, це, як згадував Blauhirn, не є рішенням просто відкрити запит у новій вкладці, якщо ви використовуєте заголовки аутентифікації тощо.

У хроні Forturnatly є й інші параметри, такі як Copy -> Copy as curl. Запуск цього виклику з командоліні через CURL буде точною копією вихідного виклику.

Я додав > ~/result.jsonдо останньої частини командона, щоб зберегти результат у файл. В іншому випадку він буде виведений на консоль.


1
Точна репліка не буде корисною, якщо стан сервера, що постачає відповідь, змінився. Тож для мене потрібно чекати близько 40 хвилин, щоб відбулася подія, і ця подія запускає нову сторінку, це повністю порушує все використання. Це повинен бути варіант, який можна переключити. На жаль, для загальних відвідувачів питання, перелічених у попередньому коментарі, немає варіантів голосування чи коментарів, якщо ви не є членом їх команди: /
— Девід Мартенссон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.