Menyelesaikan "Request Header Field Access-Control-Allow-Headers Tidak Dibenarkan oleh Access-Control-Allow-Headers" Ralat
Dalam percubaan untuk membetulkan ralat awal, pengepala telah ditambahkan pada permintaan untuk membenarkan pelbagai kaedah dan pengepala. Walau bagaimanapun, ini membawa kepada ralat baharu: "Permintaan medan pengepala Access-Control-Allow-Origin tidak dibenarkan oleh Access-Control-Allow-Headers."
Memahami CORS dan Permintaan Preflight
Isu ini berpunca daripada fakta bahawa penyemak imbas menghantar permintaan OPTIONS prapenerbangan untuk permintaan silang asal dengan jenis kandungan tertentu. Secara lalai, Angular menghantar data dengan jenis kandungan aplikasi/json, yang mencetuskan permintaan prapenerbangan ini.
Respons Pelayan dan Pengepala
Pelayan mesti membenarkan Akses- Pengepala Control-Allow-Header dalam responsnya untuk mengelakkan ralat. Jika tidak, penyemak imbas akan mentafsirkan respons sebagai tidak membenarkan sebarang pengepala.
Penyelesaian: Mengubah Suai Jenis Kandungan atau Respons Pelayan
Untuk menyelesaikan isu, ubah suai sama ada klien atau konfigurasi pelayan:
1. Sisi Pelanggan (Sudut):
Tulis ganti jenis kandungan Sudut lalai ke application/x-www-form-urlencoded, yang tidak mencetuskan permintaan preflight:
$http.post(url, data, { headers : { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' } });
2. Bahagian Pelayan:
Sebagai alternatif, benarkan pengepala Access-Control-Allow-Headers pada pelayan. Pengepala respons berikut mesti ditetapkan:
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Request Header Access-Control-Allow-Headers Tidak Dibenarkan oleh Access-Control-Allow-Headers\' dalam Permintaan Silang Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!