Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah saya boleh menghantar data kepada perkhidmatan dalam Axios dan memastikan jenis kandungan dan sempadan yang betul ditetapkan?

Bagaimanakah saya boleh menghantar data kepada perkhidmatan dalam Axios dan memastikan jenis kandungan dan sempadan yang betul ditetapkan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 23:09:30203semak imbas

How can I pass data to a service in Axios and ensure the correct content type and boundary are set?

Mengirim Data ke Perkhidmatan dalam Axios

Masalah: Anda ingin melampirkan "_sempadan" pada pengepala panggilan API Axios, tetapi data tidak boleh diakses dalam perkhidmatan Axios.

Penyelesaian: Axios secara automatik mengendalikan jenis kandungan untuk format badan permintaan tertentu, termasuk FormData. Meluluskan contoh FormData sebagai argumen data akan menetapkan sempadan Jenis Kandungan dan mime yang sesuai tanpa konfigurasi manual.

Penjelasan Terperinci:

Pengendalian Jenis Kandungan Automatik :

Apabila menghantar contoh FormData, masa jalan secara automatik menetapkan Content-Type kepada "multipart/form-data" dan termasuk token sempadan mime yang betul. Tingkah laku ini memastikan bahawa data disiri dengan betul dan dihantar ke pelayan.

Contoh:

Berikut ialah contoh menghantar contoh FormData dengan Axios:

<code class="javascript">const form = new FormData();

// Attach files and other fields to the formData instance
form.append('file', fileInput.files[0]);
form.append('foo', 'foo');

axios.post(url, form);</code>

Mengendalikan Jenis Kandungan Tersuai:

Anda hanya perlu menetapkan Jenis Kandungan secara manual jika anda ingin menghantar data rentetan dalam format tertentu (cth., teks/xml, application/json).

Contoh:

<code class="javascript">const data = JSON.stringify({ foo: 'foo', bar: 'bar' });

axios.post(url, data, {
  headers: { 'content-type': 'application/json' },
});</code>

Mengelakkan Axios v0.27.1 dan v1.0.0 :

Versi Axios ini mempunyai masalah yang diketahui dengan pengendalian FormData. Adalah disyorkan untuk menggunakan alternatif seperti API Ambil, got (untuk Node.js) atau ky (untuk penyemak imbas).

Pertimbangan Node.js:

Bila menggunakan Axios pada bahagian belakang Node.js, ia tidak akan membuat kesimpulan pengepala Jenis Kandungan daripada tika FormData. Untuk menangani perkara ini, anda boleh menggunakan pemintas permintaan atau menggabungkan pengepala secara manual.

Kaedah jQuery $.ajax():

Secara lalai, $.ajax() menghantar muatan sebagai "application/x-www-form-urlencoded" dan menyerikan data JavaScript menggunakan jQuery.param(). Untuk membenarkan penyemak imbas menetapkan Jenis Kandungan secara automatik, gunakan pilihan berikut:

<code class="javascript">$.ajax({
  url,
  method: 'POST',
  data: body,
  contentType: false, // Let the browser figure out the content type
  processData: false, // Don't attempt to serialize data
});</code>

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghantar data kepada perkhidmatan dalam Axios dan memastikan jenis kandungan dan sempadan yang betul ditetapkan?. 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
Artikel sebelumnya:JS dan AsasArtikel seterusnya:JS dan Asas