Rumah >hujung hadapan web >tutorial js >Ralat CORS: Mengapa Pelayan Saya Menolak \'Jenis-Kandungan\' dalam Permintaan Prapenerbangan?

Ralat CORS: Mengapa Pelayan Saya Menolak \'Jenis-Kandungan\' dalam Permintaan Prapenerbangan?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 14:21:02525semak imbas

CORS Error: Why Does My Server Reject

Ralat CORS: Mengubah Suai Pengepala Dibenarkan

Apabila cuba melaksanakan permintaan POST dengan muat naik fail, penyemak imbas sering menghadapi ralat: "Permintaan medan pengepala Content-Type tidak dibenarkan oleh Access-Control-Allow-Headers."

Punca Punca:

Ralat ini berlaku kerana pelayar pra-penerbangan meminta untuk rentas asal permintaan dengan jenis kandungan bukan standard seperti "multipart/form-data" dengan menghantar permintaan OPTIONS. Permintaan OPTIONS menyemak sama ada pelayan membenarkan pengepala permintaan khusus yang tidak disertakan dalam set HTTP standard.

Penyelesaian Percubaan Awal:

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

"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"

Ralat Seterusnya:

Walau bagaimanapun, ini mengakibatkan ralat baharu: "Minta akses medan pengepala- Control-Allow-Origin tidak dibenarkan oleh Access-Control-Allow-Headers."

Penyelesaian:

Isu timbul kerana pelayan mesti membenarkan "Kandungan- Taip" dalam konfigurasi "Access-Control-Allow-Headers". Penyemak imbas menghantar permintaan OPTIONS prapenerbangan dengan pengepala "Jenis Kandungan" dan jika pelayan tidak membenarkannya, permintaan CORS akan gagal.

Untuk menyelesaikan ralat ini, pembangun hendaklah sama ada menulis ganti "aplikasi lalai Angular" /json" jenis kandungan atau benarkan "Content-Type" dalam konfigurasi Access-Control-Allow-Headers pelayan.

Sampel Kod Sudut:

Untuk menulis ganti lalai pengepala dalam Angular, kod berikut boleh digunakan:

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

Atas ialah kandungan terperinci Ralat CORS: Mengapa Pelayan Saya Menolak \'Jenis-Kandungan\' dalam Permintaan Prapenerbangan?. 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
Artikel sebelumnya:Deno Deploy: Pasang Apl ReactArtikel seterusnya:Deno Deploy: Pasang Apl React