Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Membetulkan \'TypeError: Menukar Struktur Pekeliling kepada JSON\' dalam Sambungan Chrome `sendRequest`?
Menyelesaikan "TypeError: Menukar Struktur Pekeliling kepada JSON" dalam Chrome sendRequest
Dalam sambungan Chrome, menggunakan chrome.extension.sendRequest untuk berkomunikasi dengan skrip latar belakang boleh membawa kepada "TypeError: Menukar Pekeliling Ralat struktur kepada JSON". Ralat ini berlaku apabila objek permintaan mengandungi rujukan bulat, menghalangnya daripada ditukar kepada format JSON untuk penghantaran.
Pertimbangkan coretan kod berikut:
chrome.extension.sendRequest({ req: "getDocument", docu: pagedoc, name: 'name' }, function(response) { var efjs = response.reply; });
Jika objek pagedoc mengandungi rujukan pekeliling, seperti yang dijelaskan di bawah, kod akan gagal dengan ralat yang disebutkan di atas.
var a = {}; a.b = a;
Dalam Data JSON, rujukan pekeliling tidak dibenarkan. Nod DOM juga mempamerkan rujukan bulat, walaupun ia tidak dilampirkan pada pepohon dokumen. Contohnya, setiap nod mempunyai sifat ownerDocument yang merujuk dokumen dan document.body.ownerDocument merujuk dokumen itu semula; ini hanyalah salah satu daripada banyak rujukan pekeliling dalam pepohon DOM.
Penyelesaian
Untuk menyelesaikan isu ini, kenal pasti dan alih keluar rujukan pekeliling daripada objek permintaan. Contohnya, jika pagedoc ialah nod DOM, anda boleh mengalih keluarnya daripada objek permintaan dan sebaliknya menyertakan hanya sifatnya yang berkaitan. Sebagai alternatif, anda boleh menggunakan pustaka yang mengendalikan rujukan bulat.
Dengan mengikut langkah ini, anda boleh menyelesaikan ralat "TypeError: Menukar Struktur Pekeliling kepada JSON" dalam panggilan sendRequest sambungan Chrome dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'TypeError: Menukar Struktur Pekeliling kepada JSON' dalam Sambungan Chrome `sendRequest`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!