Mengapa "Tiada pengepala Access-Control-Allow-Origin hadir pada sumber yang diminta"
Isunya ialah apabila penyemak imbas membuat permintaan silang asal (CORS ), penyemak imbas mula-mula menghantar permintaan pra-penerbangan kepada pelayan untuk menyemak sama ada pelayan menyokong CORS, dan jika ya, kaedah, pengepala dan asal-usul yang manakah dibenarkan.
Pelayan harus membalas permintaan pra-penerbangan dengan tajuk CORS yang sesuai. Jika pelayan tidak bertindak balas dengan pengepala yang diperlukan, penyemak imbas akan menyekat permintaan sebenar.
Dalam kes ini, pelayan tidak bertindak balas dengan pengepala Access-Control-Allow-Origin, yang memberitahu penyemak imbas bahawa asal dibenarkan untuk mengakses sumber.
Cara membetulkannya
Terdapat beberapa cara untuk membetulkan isu ini:
- Tambah Access-Control- Pengepala Allow-Origin kepada respons permintaan prapenerbangan. Ini boleh dilakukan dengan menggunakan perisian tengah dalam kod.
- Tetapkan pengepala Access-Control-Allow-Origin kepada '*' untuk membenarkan semua asal. Walau bagaimanapun, ini tidak disyorkan atas sebab keselamatan.
- Gunakan proksi terbalik yang boleh menambah pengepala Access-Control-Allow-Origin pada respons.
Nota tambahan
- Pengepala Access-Control-Allow-Origin juga boleh ditetapkan untuk asal-usul tertentu. Contohnya, untuk membenarkan permintaan daripada https://example.com, anda boleh menetapkan pengepala kepada Access-Control-Allow-Origin: https://example.com.
- Access-Control-Allow- Pengepala asal hanya diperlukan untuk permintaan silang asal. Jika permintaan adalah dari asal yang sama, penyemak imbas tidak akan menghantar permintaan prapenerbangan dan pelayan tidak perlu membalas dengan pengepala Access-Control-Allow-Origin.
Atas ialah kandungan terperinci Mengapa Saya Melihat Ralat \'Tiada Access-Control-Allow-Origin Header\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!