Gagal Mengakses Subdomain daripada Domain Utama: Tiada 'Access-Control-Allow-Origin'
Isu ini timbul apabila aplikasi web dihoskan pada subdomain cuba mengakses pelayan API pada domain utama, tetapi menemui ralat "Tiada 'Access-Control-Allow-Origin' pada sumber yang diminta".
Penguatkuasaan Dasar CORS :
Mesej menunjukkan bahawa respons daripada pelayan API tidak mempunyai pengepala "Access-Control-Allow-Origin", yang penting untuk mendayakan perkongsian sumber silang asal (CORS). CORS ialah mekanisme keselamatan yang menghalang aplikasi web daripada membuat permintaan yang tidak dibenarkan kepada domain lain.
Punca Kemungkinan:
-
Tetapan CORS yang salah konfigurasi: Pastikan pelayan API dikonfigurasikan dengan betul untuk membenarkan permintaan silang asal daripada subdomain dengan menambahkan pengepala "Access-Control-Allow-Origin" yang sesuai pada responsnya.
-
Isu Proksi Songsang: Sahkan bahawa mana-mana proksi terbalik atau pengimbang beban antara subdomain dan pelayan API tidak menyekat pengepala "Access-Control-Allow-Origin".
Menyelesaikan masalah:
-
Semak Respons Prapenerbangan: Gunakan Chrome DevTools atau arahan curl untuk memeriksa permintaan dan respons prapenerbangan. Pastikan respons prapenerbangan mengandungi pengepala "Access-Control-Allow-Origin" yang diperlukan.
-
Hantar Permintaan Terus ke API: Cuba hantar permintaan prapenerbangan terus ke pelayan API untuk menghapuskan kemungkinan gangguan daripada komponen lain.
-
Uji Konfigurasi CORS: Gunakan alat ujian CORS dalam talian atau sambungan penyemak imbas untuk mengesahkan bahawa tetapan CORS berfungsi dengan betul.
-
Periksa Pengepala Respons: Gunakan alat seperti curl untuk memeriksa pengepala respons daripada pelayan API dan pastikan pengepala "Access-Control-Allow-Origin" hadir.
-
Semak AWS Load Balancer Tetapan: Dalam kes AWS, semak sama ada kumpulan sasaran yang dikaitkan dengan pengimbang beban dikonfigurasikan untuk HTTPS, kerana ini kadangkala boleh membawa kepada isu CORS.
Maklumat Tambahan:
- [Mengendalikan CORS dalam Go with Gin](https://www.digitalocean.com/community/tutorials/how-to-handle-cross-origin-resource-sharing-cors -in-go)
- [Menggunakan CORS dengan Gin-gonic](https://godoc.org/github.com/gin-gonic/gin#hdr-CORS)
- [Pengujian CORS dengan cURL](https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request#Testing_CORS_with_cURL)
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses API Subdomain Saya daripada Domain Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!