Rumah >hujung hadapan web >tutorial js >Bagaimanakah cara saya memasukkan pengepala tersuai dalam permintaan AJAX POST tanpa mencetuskan 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" } ... })
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 ...
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"); } ... })
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!