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
581 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!

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