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
Lepaskan: 2024-10-28 14:21:02
asal
538 orang telah melayarinya

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"
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan