Rumah  >  Artikel  >  hujung hadapan web  >  ## Mengapakah saya mendapat SyntaxError apabila menggunakan API ambil dengan mod \'no-cors\' walaupun menjangkakan respons legap?

## Mengapakah saya mendapat SyntaxError apabila menggunakan API ambil dengan mod \'no-cors\' walaupun menjangkakan respons legap?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 22:44:29559semak imbas

## Why am I getting a SyntaxError when using fetch API with 'no-cors' mode despite expecting an opaque response?

Ambil Ralat API dalam Mod 'no-cors' Walaupun Jangkaan Respons Legap

Isu: Percubaan untuk mengambil API dengan set mod kepada 'no-cors' menghasilkan SyntaxError sebagai tindak balas kepada response.json().

Penjelasan:

Apabila menggunakan API fetch dengan 'no-cors' mod, penyemak imbas secara senyap akan gagal sebarang permintaan yang memerlukan kebenaran CORS. Mesej ralat "Tamat input yang tidak dijangka" dilemparkan kerana operasi pengambilan mengembalikan respons legap (bermaksud kandungannya tidak boleh diakses).

Penyelesaian:

The " jika respons legap memenuhi keperluan anda" menunjukkan bahawa pelayan tidak memberikan kebenaran CORS kepada permintaan itu. Untuk menyelesaikan isu ini, anda hendaklah:

  • Alih keluar mod 'tanpa cors': Tetapkan mod kepada 'cors' atau tinggalkan sepenuhnya.
  • Konfigurasikan pelayan untuk memberikan kebenaran CORS: Tambahkan pengepala CORS yang sesuai pada respons pelayan, seperti 'Access-Control-Allow-Origin: *' untuk semua asal atau 'Access-Control-Allow-Origin: https ://mysite.com' untuk asal usul tertentu.

Nota Tambahan:

CORS (Cross-Origin Resource Sharing) melindungi daripada skrip merentas tapak ( XSS) menyerang dengan menghalang akses tanpa kebenaran kepada sumber daripada asal yang berbeza. Pemberian kebenaran CORS hendaklah dilakukan dengan berhati-hati untuk mengekalkan keselamatan.

Rujukan:

  • [CORS secara Umum](https://stackoverflow.com/questions/ 6359744/apa itu-kors-perkongsian-sumber-silang)

Atas ialah kandungan terperinci ## Mengapakah saya mendapat SyntaxError apabila menggunakan API ambil dengan mod \'no-cors\' walaupun menjangkakan respons legap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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