Rumah > hujung hadapan web > tutorial js > Mengapakah `response.json()` Membuang \'Tamat Input Tidak Dijangka\' dalam Mod `no-cors` Ambil?

Mengapakah `response.json()` Membuang \'Tamat Input Tidak Dijangka\' dalam Mod `no-cors` Ambil?

DDD
Lepaskan: 2024-12-01 19:57:18
asal
808 orang telah melayarinya

Why Does `response.json()` Throw

Ralat Akhir Input Yang Tidak Dijangka Semasa Mengendalikan Respons CORS

Apabila mengendalikan respons daripada panggilan ambil REST-API dengan mod tanpa cors , pembangun mungkin menghadapi ralat "SyntaxError: Input akhir yang tidak dijangka". Ralat ini berlaku pada baris response.json() dan menghalang respons daripada dihuraikan sebagai JSON.

Sebab

Mod tanpa cors mengehadkan ketersediaan data tindak balas kepada penyemak imbas. Dalam mod ini, respons menjadi legap, bermakna JavaScript bahagian hadapan tidak boleh mengakses kandungan atau pengepalanya. Had ini direka bentuk untuk menghalang akses data rentas asal dan potensi kelemahan keselamatan.

Penyelesaian

Untuk menyelesaikan ralat ini, mod tanpa cors mesti dialih keluar daripada permintaan. Mod ini tidak boleh digunakan sebagai penyelesaian untuk isu CORS. Sebaliknya, penyelesaian berikut harus dipertimbangkan:

  • Konfigurasikan pelayan untuk menghantar pengepala respons Access-Control-Allow-Origin dan mengendalikan permintaan OPTIONS.
  • Gunakan proksi CORS untuk memajukan permintaan kepada pelayan dan mengendalikan pengepala CORS.

Tambahan Maklumat

  • Dokumentasi untuk objek Request menerangkan kesan penggunaan mod tanpa cors: https://developer.mozilla.org/en-US/docs/Web/API/Request /mode
  • Untuk panduan mengendalikan isu CORS, rujuk jawapan di: https://stackoverflow.com/questions/23619190/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe

Atas ialah kandungan terperinci Mengapakah `response.json()` Membuang \'Tamat Input Tidak Dijangka\' dalam Mod `no-cors` Ambil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan