Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghantar Data Borang sebagai `application/x-www-form-urlencoded` dengan API Ambil?

Bagaimana untuk Menghantar Data Borang sebagai `application/x-www-form-urlencoded` dengan API Ambil?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 15:34:02655semak imbas

How to Send Form Data as `application/x-www-form-urlencoded` with the Fetch API?

Menyiarkan Data Borang dengan API Ambil Menggunakan Aplikasi/x-www-form-urlencoded

Apabila menyerahkan borang, anda mungkin menghadapi persoalan tentang cara menghantar data menggunakan API Ambil. Secara lalai, menggunakan FormData untuk menghantar badan menyebabkan data dihantar sebagai berbilang bahagian/data-bentuk. Walau bagaimanapun, jika anda ingin menghantar data sebagai application/x-www-form-urlencoded, terdapat beberapa pilihan yang tersedia.

FormData dengan Multipart/Form-Data Format

Menggunakan FormData secara automatik mengunci anda untuk menghantar data dalam format berbilang bahagian/data bentuk. Untuk mengelakkan ini, anda boleh membuat rentetan berkod URL atau objek URLSearchParams secara manual, dan bukannya menggunakan FormData. Di bawah ialah coretan kod yang berulang melalui elemen borang dan membina objek URLSearchParams:

const data = new URLSearchParams();
for (const pair of new FormData(formElement)) {
    data.append(pair[0], pair[1]);
}

fetch(url, {
    method: 'post',
    body: data,
})
.then(…);

Nota: Anda tidak perlu menentukan pengepala Jenis Kandungan secara eksplisit.

URLSearchParams dengan FormData

Satu lagi pilihan percubaan adalah untuk mencipta objek URLSearchParams dan lulus objek FormData secara langsung, bukannya menggelung melalui nilai:

const data = new URLSearchParams(new FormData(formElement));

Walaupun kaedah ini mempunyai beberapa sokongan percubaan dalam penyemak imbas, adalah disyorkan untuk menguji dengan teliti sebelum menggunakannya.

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Data Borang sebagai `application/x-www-form-urlencoded` dengan API Ambil?. 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