Rumah >hujung hadapan web >tutorial js >Mengapakah menggunakan mod 'no-cors' Fetch bukan penyelesaian untuk mengendalikan permintaan silang asal?
Menggunakan Fetch dengan Mod 'tanpa cors'
API Fetch menyediakan cara yang mudah untuk membuat permintaan kepada pelayan. Walau bagaimanapun, apabila mengakses sumber silang asal, anda mungkin menghadapi ralat "Tiada pengepala 'Access-Control-Allow-Origin' pada sumber yang diminta." Ralat ini menunjukkan sekatan keselamatan yang dikenakan oleh Dasar Same-Origin.
Untuk melumpuhkan CORS dalam Ambil, adalah menarik untuk menggunakan pilihan { mod: 'no-cors' }. Walau bagaimanapun, pendekatan ini tidak betul dan tidak diingini.
Mod 'no-cors': Salah Langkah
mod 'no-cors' pada dasarnya menghalang penyemak imbas daripada mengakses respons badan dan tajuk. Ini bermakna kod anda tidak akan dapat memproses atau menggunakan data yang diambil. Adalah penting untuk memahami bahawa melumpuhkan CORS tidak mengatasi Dasar Asal Sama. Ia hanya mempengaruhi cara penyemak imbas mengendalikan respons.
Penyelesaian: Proksi CORS
Daripada melumpuhkan CORS, anda harus menggunakan proksi CORS. Proksi bertindak sebagai perantara antara kod bahagian hadapan anda dan pelayan sasaran. Apabila anda menghantar permintaan melalui proksi, ia memajukan permintaan kepada pelayan, menerima respons dan menambah pengepala Access-Control-Allow-Origin yang diperlukan sebelum menghantarnya kembali ke kod anda. Ini membolehkan kod anda mengakses asal silang respons.
Untuk menyediakan proksi CORS, anda boleh menggunakan perkhidmatan sedia ada atau menggunakan proksi anda sendiri menggunakan platform seperti Heroku.
Pemahaman Permintaan Silang Asal
Adalah penting untuk ambil perhatian bahawa walaupun anda boleh mengakses sumber silang asal dalam Posman, penyemak imbas mengenakan sekatan pada kod bahagian hadapan yang dijalankan dalam apl web. Untuk memastikan akses sumber silang asal, respons mesti termasuk pengepala Access-Control-Allow-Origin.
Respons Legap: Kaveat
Sementara 'tiada-kor' mod melumpuhkan CORS, ia juga mencipta respons legap. Respons legap mempunyai had tertentu, termasuk:
Oleh itu, penggunaan 'no-cors' harus dipertimbangkan hanya dalam situasi tertentu, seperti caching dan membenamkan sumber dalam elemen HTML tertentu.
Kesimpulan
Melumpuhkan CORS dengan mod 'no-cors' bukanlah penyelesaian untuk akses sumber silang asal. Sebaliknya, menggunakan proksi CORS ialah pendekatan pilihan. Dengan merapatkan jurang antara bahagian hadapan anda dan pelayan sasaran, proksi menambahkan pengepala yang diperlukan, membolehkan kod anda berfungsi dengan lancar merentas asal.
Atas ialah kandungan terperinci Mengapakah menggunakan mod 'no-cors' Fetch bukan penyelesaian untuk mengendalikan permintaan silang asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!