Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah pengepala \"Access-Control-Allow-Origin\" saya tidak dibenarkan dalam \"Access-Control-Allow-Headers\" apabila menghantar fail dengan permintaan POST dalam Angular?

Mengapakah pengepala \"Access-Control-Allow-Origin\" saya tidak dibenarkan dalam \"Access-Control-Allow-Headers\" apabila menghantar fail dengan permintaan POST dalam Angular?

Susan Sarandon
Susan Sarandonasal
2024-10-28 07:36:29634semak imbas

Why is my

Isu: Ralat Permintaan Silang Asal dengan Pengepala

Apabila cuba menghantar fail dengan permintaan POST, pembangun mungkin menghadapi ralat yang menunjukkan bahawa pengepala permintaan khusus tidak dibenarkan oleh pengepala respons Access-Control-Allow-Headers.

Untuk menyelesaikan isu ini, pembangun menambah pengepala berikut pada permintaan:

"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"

Walau bagaimanapun , ini mengakibatkan ralat baharu yang menyatakan bahawa pengepala "Access-Control-Allow-Origin" tidak dibenarkan oleh pengepala "Access-Control-Allow-Headers".

Penyelesaian: Pengepalaan Sekatan dan Jenis Kandungan Lalai

Untuk permintaan silang asal, penyemak imbas akan menghantar permintaan OPTIONS prapenerbangan jika jenis kandungan tidak ditetapkan kepada salah satu daripada tiga jenis tertentu: "application/x-www-form-urlencoded" , "multipart/form-data", atau "text/plain".

Secara lalai, Angular menetapkan jenis kandungan kepada "application/json", yang bukan salah satu jenis yang boleh diterima untuk permintaan silang asal . Ini mencetuskan permintaan OPTIONS prapenerbangan, yang kemudiannya ditolak kerana sekatan pada pengepala "Access-Control-Allow-Headers".

Untuk menyelesaikan isu ini, pembangun boleh menulis ganti jenis kandungan lalai dalam Angular atau benarkan pengepala "Access-Control-Allow-Headers" di sebelah pelayan.

Sampel sudut yang menimpa pengepala lalai:

$http.post(url, data, {
    headers : {
        'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
    }
});

Atas ialah kandungan terperinci Mengapakah pengepala \"Access-Control-Allow-Origin\" saya tidak dibenarkan dalam \"Access-Control-Allow-Headers\" apabila menghantar fail dengan permintaan POST dalam Angular?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn