Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memintas Ralat 'Tiada Kawalan Akses-Benarkan-Asal' Semasa Menggunakan Ambil?

Bagaimanakah Saya Boleh Memintas Ralat 'Tiada Kawalan Akses-Benarkan-Asal' Semasa Menggunakan Ambil?

DDD
DDDasal
2024-12-14 10:17:10138semak imbas

How Can I Bypass

Bekerja dengan CORS dalam Permintaan Ambil

Semasa mengakses sumber silang asal menggunakan fetch, adalah perkara biasa untuk menemui "Tiada kawalan akses- ralat benarkan asal". Ini menghalang JavaScript pihak pelanggan daripada mengakses respons kerana sekatan silang asal.

Meluluskan { mod: 'no-cors' } kepada Ambil

Bertentangan dengan jangkaan , { mod: 'no-cors' } tidak akan mengurangkan isu ini. Sebaliknya, ia menyekat dengan ketat akses JavaScript kepada kandungan badan respons dan pengepala.

Penyelesaian: Proksi CORS

Untuk mengatasinya, proksi CORS boleh digunakan. Proksi terletak di antara pelanggan dan tapak web sasaran. Ia mengambil permintaan, memajukannya ke tapak sasaran, dan menerima respons. Yang penting, proksi menambah pengepala respons 'Access-Control-Allow-Origin', yang membenarkan kod klien mengakses respons.

Mengapa Posmen Boleh Mengakses Endpoint

Walaupun Posmen membenarkan akses kepada titik akhir tanpa pengepala 'Access-Control-Allow-Origin', pelayar web mengenakan sekatan silang asal. Pengepala ini adalah wajib bagi JavaScript pihak pelanggan untuk berinteraksi dengan respons.

Salah tanggapan tentang Melumpuhkan CORS

Apabila menyasarkan untuk "melumpuhkan CORS," apa yang sebenarnya dimaksudkan ialah melumpuhkan dasar asal yang sama. CORS, sebenarnya, menyediakan cara untuk melonggarkan dasar ini dengan membenarkan akses silang asal tertentu.

Bila Gunakan { mod: 'no-cors' }

{ mod: 'no-cors' } hanya perlu dipertimbangkan dalam senario tertentu:

  • Membenamkan kandungan ke dalam elemen HTML menggunakan JavaScript, tetapi tidak secara langsung melalui atributnya.
  • Mencache sumber menggunakan Service Workers dan API Penyimpanan Cache.

Walau bagaimanapun, walaupun dalam kes ini, terdapat had dan faktor penting untuk pertimbangkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memintas Ralat 'Tiada Kawalan Akses-Benarkan-Asal' Semasa Menggunakan Ambil?. 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