Heim > Web-Frontend > js-Tutorial > Wie kann ich Daten an einen Dienst in Axios übergeben und sicherstellen, dass der richtige Inhaltstyp und die richtige Grenze festgelegt sind?

Wie kann ich Daten an einen Dienst in Axios übergeben und sicherstellen, dass der richtige Inhaltstyp und die richtige Grenze festgelegt sind?

Mary-Kate Olsen
Freigeben: 2024-11-03 23:09:30
Original
266 Leute haben es durchsucht

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

Übergabe von Daten an den Dienst in Axios

Problem: Sie möchten eine „_boundary“ an den Header von anhängen ein Axios-API-Aufruf, aber die Daten sind im Axios nicht zugänglich Service.

Lösung: Axios verarbeitet automatisch Inhaltstypen für bestimmte Anforderungstextformate, einschließlich FormData. Durch die Übergabe einer FormData-Instanz als Datenargument werden der entsprechende Inhaltstyp und die MIME-Grenze ohne manuelle Konfiguration festgelegt.

Detaillierte Erklärung:

Automatische Inhaltstypbehandlung :

Beim Senden einer FormData-Instanz setzt die Laufzeit den Content-Type automatisch auf „multipart/form-data“ und Enthält die richtigen MIME-Grenztoken. Dieses Verhalten stellt sicher, dass die Daten korrekt serialisiert und an den Server gesendet werden.

Beispiel:

Hier ist ein Beispiel für das Senden einer FormData-Instanz mit 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>
Nach dem Login kopieren

Umgang mit benutzerdefinierten Inhaltstypen:

Sie müssen nur manuell vorgehen Legen Sie den Inhaltstyp fest, wenn Sie Zeichenfolgendaten in einem bestimmten Format senden möchten (z. B. Text/XML, Anwendung/JSON).

Beispiel:

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

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

Vermeidung von Axios v0.27.1 und v1.0.0 :

Diese Axios-Versionen haben bekannte Probleme bei der Verarbeitung von FormData. Es wird empfohlen, Alternativen wie die Fetch-API, got (für Node.js) oder ky (für Browser) zu verwenden.

Node.js-Überlegungen:

Wann Wenn Axios im Node.js-Backend verwendet wird, werden keine Content-Type-Header von FormData-Instanzen abgeleitet. Um dieses Problem zu beheben, können Sie einen Request-Interceptor verwenden oder die Header manuell zusammenführen.

jQuery $.ajax() Methode:

Standardmäßig $.ajax() sendet Nutzlasten als „application/x-www-form-urlencoded“ und serialisiert JavaScript-Daten mit jQuery.param(). Damit der Browser den Inhaltstyp automatisch festlegen kann, verwenden Sie die folgenden Optionen:

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Daten an einen Dienst in Axios übergeben und sicherstellen, dass der richtige Inhaltstyp und die richtige Grenze festgelegt sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage