Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyelesaikan Ralat 'Tiada 'Access-Control-Allow-Origin'' semasa Mengambil Data daripada REST API?
Apabila cuba mendapatkan data daripada API REST semasa bekerja pada hos tempatan, anda mungkin menghadapi mesej ralat "Ambil API tidak boleh memuatkan . Respons kepada permintaan prapenerbangan tidak lulus akses semakan kawalan: Tiada pengepala 'Access-Control-Allow-Origin' hadir pada sumber yang diminta." Ralat ini berpunca daripada "Dasar Asal Sama" yang dikuatkuasakan oleh penyemak imbas, mengehadkan sumber daripada asal yang berbeza (domain, port dan protokol) daripada berinteraksi antara satu sama lain.
Jika anda kurang kawalan ke atas pelayan yang mengehos API REST anda dan satu-satunya isu dengan responsnya ialah ketiadaan pengepala Access-Control-Allow-Origin yang diperlukan, anda boleh memanfaatkan proksi CORS untuk memudahkan permintaan.
Berikut ialah langkah untuk menyediakan proksi anda sendiri:
Setelah digunakan, letakkan awalan URL API REST anda dengan URL proksi yang dijana. Contohnya: https://cryptic-headland-94862.herokuapp.com/https://example.com.
Permintaan dalam soalan mencetuskan permintaan prapenerbangan yang perlu dibayar kepada kemasukan pengepala Kebenaran. Untuk menghalang prapenerbangan ini, pertimbangkan untuk menggunakan salah satu teknik berikut:
Untuk permintaan yang melibatkan kelayakan, penyemak imbas mengehadkan akses kod JavaScript bahagian hadapan kepada respons jika nilai pengepala Access-Control-Allow-Origin ialah '*'. Dalam kes sedemikian, nilai mesti sepadan dengan tepat dengan asal kod bahagian hadapan anda (cth., http://127.0.0.1:3000).
Nota: Elakkan menggunakan pemalam Chrome CORS, sebagai mereka hanya menyuntik tajuk Access-Control-Allow-Origin: * generik ke dalam respons, yang mungkin membawa kepada tingkah laku yang tidak dijangka. Gunakan arahan curl dengan bendera -H untuk ujian yang boleh dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Tiada 'Access-Control-Allow-Origin'' semasa Mengambil Data daripada REST API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!