Alat pengembang Chrome gagal untuk menunjukkan respon bahkan konten yang dikembalikan memiliki tajuk Jenis Konten: teks / html; charset = UTF-8

157

Mengapa alat pengembang Chrome saya menampilkan "Gagal menampilkan data tanggapan" sebagai tanggapan ketika konten yang dikembalikan berjenis teks / html?

Apa alternatif untuk melihat tanggapan yang dikembalikan di alat pengembang?

randominstanceOfLivingThing
sumber
Saya telah menemukan bahwa Microsoft Edge Dev (berdasarkan Chromium) tidak memberi saya kesalahan ini.
Untuk Nama
Apakah Anda mencoba memeriksa di Firefox?
Rajendra kumar Vankadari

Jawaban:

219

Saya rasa ini hanya terjadi jika Anda telah memeriksa 'Pertahankan log' dan Anda mencoba melihat data respons dari permintaan sebelumnya setelah Anda keluar.

Misalnya, saya melihat Tanggapan untuk memuat pertanyaan Stack Overflow ini. Kamu bisa melihatnya.

Data Respon

Kedua kalinya, saya memuat ulang halaman ini tetapi tidak melihat Header atau Respons. Saya menavigasi ke situs web lain. Sekarang ketika saya melihat tanggapannya, itu menunjukkan 'Gagal memuat data tanggapan'.

Tidak Ada Data Tanggapan

Ini adalah masalah umum , yang sudah ada sejak lama, dan banyak diperdebatkan. Namun, ada solusi, di mana Anda menjeda onunload, sehingga Anda dapat melihat respons sebelum menavigasi keluar, dan dengan demikian tidak kehilangan data saat keluar.

window.onunload = function() { debugger; }
Gideon Pyzer
sumber
213
Tidak bisa melihat data respons hampir seluruhnya menghilangkan inti dari "pertahankan log"!
Amalgovinus
1
Solusi window.onunload Anda bekerja dengan baik, terima kasih!
Shane N
27
Tidak, di Chrome 61, ini pasti juga terjadi jika "Pertahankan log" tidak dicentang, dan tanpa meninggalkan halaman.
ATAU Mapper
2
Masih mengalami masalah ini dengan chrome 73.0, onunloadperbaikan tidak berhasil untuk saya karena beberapa alasan.
Onza
2
Anda tidak dapat mengomentari utas yang ditautkan kecuali Anda memiliki izin editor, saya mencoba. Dan menambahkan debugger ke sumber tidak boleh dilakukan karena ini adalah kode tingkat produksi, kode debug bukanlah pilihan. Dan Firefox jelas dapat mempertahankannya dengan baik, bahkan hanya beberapa jam log, jadi apa masalah chromes? Ya, itu mungkin memakan memori, tetapi hanya jika Anda membuka alat pengembang, dan Anda mungkin lebih tertarik pada data daripada kinerja. Dan jika masih bermasalah, tambahkan sakelar.
David Mårtensson
55

Untuk orang-orang yang mendapatkan kesalahan saat meminta data JSON:

Jika Anda meminta data JSON, JSON mungkin terlalu besar dan itulah penyebab terjadinya kesalahan.

Solusi saya adalah menyalin tautan permintaan ke tab baru ( getpermintaan dari browser) menyalin data ke JSON viewer online di mana Anda memiliki parsing otomatis dan mengerjakannya di sana.

Tomz
sumber
19
bukan solusi. Saya bekerja dengan otentikasi dan semacamnya. Menentang tujuan alat pengembang. Seseorang mungkin harus membuat laporan bug di suatu tempat. Jawaban yang benar di sini
phil294
2
Apakah batas ini dapat dikonfigurasi dengan cara apa pun?
Willem Hengeveld
Dalam kasus saya, itu terjadi pada 23MB yang merupakan respons JSON besar yang bodoh .... Saya membuka masalah agar pesan kesalahan dibuat lebih deskriptif.
boatcoder
Saya melihat masalah untuk 6MB JSON :(
Lee Gunn
Juga mengenai ini pada respon JSON sekitar 6mb tidak terkompresi.
miki noidea
48

Seperti yang dijelaskan oleh Gideon, ini adalah masalah umum Chrome yang telah dibuka selama lebih dari 5 tahun tanpa minat yang jelas untuk memperbaikinya.

Sayangnya, dalam kasus saya, window.onunload = function() { debugger; }solusi tersebut juga tidak berhasil. Sejauh ini solusi terbaik yang saya temukan adalah menggunakan Firefox, yang menampilkan data respons bahkan setelah navigasi. Devtools Firefox juga memiliki banyak fitur bagus yang hilang di Chrome, seperti sintaks yang menyorot data respons jika itu html dan secara otomatis menguraikannya jika itu adalah JSON.

Antimony
sumber
5
Wow, hebat. Perlu men-debug kesalahan yang hanya terjadi pada Chrome, bukan Firefox. Jadi juga tidak ada pilihan buat saya. Sungguh, mengapa semua orang mengatakan alat web Chrome jauh lebih baik daripada Firefox? Sepertinya mereka tidak mencoba Firefox selama bertahun-tahun.
mozzbozz
13
Chrome juga tidak memiliki opsi permintaan "edit dan kirim ulang" yang nyaman dari Firefox.
Antimony
1
Ya ... Juga menggunakan FF untuk menyelesaikannya ... Bekerja seperti yang diharapkan. Kita hidup di masa yang berbahaya!
nmirceac
@Antimony chrome memang memiliki opsi "Kirim Ulang" untuk beberapa waktu, tetapi di salah satu rilis terakhir mereka telah menghapusnya ... Untungnya seseorang dapat melakukan dengan cepat fetch(...copied link...)di konsol, dan mengamati respons di tab jaringan
Ivan Hušnjak
Masih mendapatkan ini sampai sekarang. Untuk menangis dengan keras, saya lebih suka mereka memperbaiki apa yang sudah mereka miliki daripada memperkenalkan fitur-fitur yang tidak berguna seperti evaluasi yang bersemangat di konsol dan mengabaikan kualitas alat pengembang fundamental mereka.
thephpdev
22

Seperti yang dijelaskan oleh Gideon, ini adalah masalah yang diketahui.
Untuk digunakan window.onunload = function() { debugger; }sebagai gantinya.
Tapi Anda bisa menambahkan breakpoint di tab Source, lalu bisa menyelesaikan masalah Anda. seperti ini: masukkan deskripsi gambar di sini

Fitz
sumber
Apa keuntungan dari tab Sumber window.onunload = function() { debugger; }?
Mihail Malostanidis
1
Anda tidak perlu menulis kode untuk debugger, dan Anda dapat men-debug di lingkungan yang lebih tinggi tempat Anda mungkin berpindah-pindah halaman dan tidak mempertahankan jendela yang sama
Parijat Kalia
window.onunload = function() { debugger; }tidak berhasil untuk saya, ini berhasil. Terima kasih!
aexl
13

"Gagal menampilkan data respons" juga dapat terjadi jika Anda melakukan permintaan lintas domain dan host jarak jauh tidak menangani header CORS dengan benar. Periksa konsol js Anda apakah ada kesalahan.

deweydb.dll
sumber
3
chrome masih rusak karena tidak menunjukkan respons (dalam bentuk apa pun) - FF bekerja untuk saya
nmirceac
Kamu benar! Tapi inilah mengapa saya membutuhkan tanggapan untuk memahami mengapa permintaan saya gagal. Semuanya berfungsi dengan baik dengan curl, tetapi chrome masih gagal dengan "Respons untuk permintaan preflight tidak lolos pemeriksaan kontrol akses: Tidak ada header 'Access-Control-Allow-Origin' yang ada di resource yang diminta"
AHA
6

Jika Anda membuat permintaan AJAX dengan fetch, respon tidak ditampilkan kecuali jika dibaca dengan .text(), .json(), dll

Jika Anda hanya melakukan:

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

responnya tidak akan ditampilkan di alat dev.
Ini muncul setelah Anda menjalankan:

r.then(r => r.text())
gre_gor
sumber
2

Untuk orang yang menerima kesalahan ini saat meminta data JSON yang besar, seperti yang disebutkan oleh Blauhirn, bukanlah solusi untuk hanya membuka permintaan di tab baru jika Anda menggunakan header otentikasi dan sejenisnya.

Forturnatly chrome memang memiliki opsi lain seperti Salin -> Salin sebagai ikal. Menjalankan panggilan ini dari commandoline melalui cURL akan menjadi replikasi yang tepat dari panggilan asli.

Saya menambahkan > ~/result.jsonke bagian terakhir dari perintah untuk menyimpan hasilnya ke file. Jika tidak, itu akan dikeluarkan ke konsol.

thephper
sumber
1
Replika persis tidak ada gunanya jika status server yang menyediakan respons telah berubah. Jadi bagi saya, yang harus menunggu sekitar 40 menit untuk sebuah peristiwa terjadi, dan peristiwa itu memicu halaman baru, ini benar-benar merusak keseluruhan penggunaan. Ini harus menjadi opsi yang bisa diubah. Sayangnya tidak ada pilihan suara atau komentar untuk pengunjung umum ke masalah yang tercantum dalam komentar sebelumnya kecuali Anda adalah bagian dari tim mereka: /
David Mårtensson
0

Bug masih aktif. Ini terjadi ketika JS menjadi pemrakarsa untuk halaman baru (200), atau mengarahkan (301/302) 1 cara yang mungkin untuk memperbaikinya - ini menonaktifkan JavaScript berdasarkan permintaan. Yaitu dalam dalang Anda dapat menggunakan: page.setJavaScriptEnabled (false) saat mencegat permintaan (page.on ('request'))

Vopub
sumber
0

Bagi mereka yang datang ke sini dari Google, dan untuk siapa jawaban sebelumnya tidak memecahkan misteri ...

Jika Anda menggunakan XHR untuk melakukan panggilan server, tetapi tidak mengembalikan respons, kesalahan ini akan terjadi.

Contoh (dari Nodejs / React tetapi bisa juga menjadi js / php) :

App.tsx

const handleClickEvent = () => {
    fetch('/routeInAppjs?someVar=someValue&nutherVar=summat_else', {
        method: 'GET',
        mode: 'same-origin',
        credentials: 'include',
        headers: {
          'content-type': 'application/json',
          dataType: 'json',
        },
    }).then((response) => {
        console.log(response)
    });
}

App.js

app.route('/getAllPublicDatasheets').get(async function (req, res) {
    const { someVar, nutherVar } = req.query;
    console.log('Ending here without a return...')
});

Console.log di sini akan melaporkan:

Failed to show response data

Untuk memperbaikinya, tambahkan respons pengembalian ke bawah rute Anda (sisi server):

res.json('Adding this below the console.log in App.js route will solve it.');
cssyphus
sumber