Rumah > hujung hadapan web > tutorial js > Bagaimanakah cara saya memasukkan pengepala tersuai dalam permintaan AJAX POST tanpa mencetuskan semakan pra-penerbangan?

Bagaimanakah cara saya memasukkan pengepala tersuai dalam permintaan AJAX POST tanpa mencetuskan semakan pra-penerbangan?

Susan Sarandon
Lepaskan: 2024-11-07 19:08:02
asal
538 orang telah melayarinya

How do I include custom headers in an AJAX POST request without triggering a pre-flight check?

Pengepala Permintaan Kawalan Akses: Memahami Semakan Pra-penerbangan

Apabila membuat permintaan AJAX POST menggunakan jQuery, adalah mungkin untuk memasukkan pengepala tersuai untuk mengawal gelagat permintaan . Walau bagaimanapun, adalah penting untuk memahami peranan Pengepala Permintaan Kawalan Akses (CORS) dalam permintaan silang asal.

Secara lalai, jQuery mendahului permintaan silang asal dengan permintaan OPTIONS untuk memulakan semakan pra-penerbangan . Semakan ini memastikan pelayan membenarkan kaedah HTTP khusus dan pengepala disertakan dalam permintaan asal. Semasa semakan pra-penerbangan ini, jQuery secara automatik menambah pengepala Access-Control-Request-Headers pada permintaan, yang menentukan pengepala tersuai yang terdapat dalam permintaan asal.

Dalam contoh yang disediakan:

$.ajax({
    ...
    headers: {
        "My-First-Header":"first value",
        "My-Second-Header":"second value"
    }
    ...
})
Salin selepas log masuk

Parameter permintaan termasuk dua pengepala tersuai. Apabila semakan pra-penerbangan dimulakan, penyemak imbas secara automatik mengubah suai pengepala permintaan kepada yang berikut:

...
Access-Control-Request-Headers: My-First-Header,My-Second-Header
...
Salin selepas log masuk

Ini memastikan pelayan mengetahui pengepala tersuai untuk disertakan dalam permintaan POST sebenar. Walau bagaimanapun, pengepala tersuai itu sendiri tidak terdapat dalam permintaan semakan pra-penerbangan.

Untuk memasukkan pengepala tersuai dalam permintaan POST sebenar, anda boleh menggunakan fungsi beforeSend seperti berikut:

$.ajax({
    ...
    beforeSend: function(xhr) {
        xhr.setRequestHeader("My-First-Header", "first value");
        xhr.setRequestHeader("My-Second-Header", "second value");
    }
    ...
})
Salin selepas log masuk

Dalam kes ini, pengepala tersuai akan disertakan dalam permintaan POST secara langsung, tanpa mencetuskan semakan pra-penerbangan. Ambil perhatian bahawa untuk permintaan silang asal, pelayan mesti membenarkan pengepala yang ditentukan secara eksplisit dalam pengepala respons Access-Control-Allow-Headers.

Atas ialah kandungan terperinci Bagaimanakah cara saya memasukkan pengepala tersuai dalam permintaan AJAX POST tanpa mencetuskan semakan pra-penerbangan?. 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