Heim > Web-Frontend > js-Tutorial > So übergeben Sie Formulardaten mit Axios: Sollte ich _boundary manuell festlegen?

So übergeben Sie Formulardaten mit Axios: Sollte ich _boundary manuell festlegen?

Mary-Kate Olsen
Freigeben: 2024-11-04 05:37:01
Original
356 Leute haben es durchsucht

How to Pass Form Data with Axios: Should I Set _boundary Manually?

Übergabe von Daten an den Axios-Dienst

In diesem Szenario besteht das Ziel darin, Formulardaten von der loginService-Komponente an die Services/Index-Komponente zu übergeben um auf _boundary in den Headern der Axios-Instanz zuzugreifen. Der Schlüssel dazu liegt darin, zu verstehen, wie Anforderungstexte von HTTP-Clients verarbeitet werden.

HTTP-Anforderungstextverarbeitung

Bei HTTP-Anfragen mit FormData legt der Client automatisch fest den Content-Type-Header zu multipart/form-data und enthält die entsprechenden Grenztoken. In ähnlicher Weise wird für URLSearchParams Content-Type auf application/x-www-form-urlencoded gesetzt.

Behebung des Axios-Problems

In Ihrem Fall möchten Sie _boundary im Header manuell festlegen. Da wir FormData jedoch bereits verwenden, wird die Laufzeit dies automatisch verarbeiten. Sie können diesen Schritt überspringen, wenn Sie Axios v0.27.1 oder früher verwenden.

Node.js-Überlegungen

Bei der Verwendung von Axios in Node.js werden FormData-Header nicht abgeleitet automatisch. Als Workaround können Sie einen Request-Interceptor verwenden:

<code class="javascript">axios.interceptors.request.use(config => {
  if (config.data instanceof FormData) {
    Object.assign(config.headers, config.data.getHeaders());
  }
  return config;
}, null, { synchronous: true });</code>
Nach dem Login kopieren

Alternativ führen Sie die Header manuell zusammen, während Sie die Anfrage stellen.

jQuery-Überlegungen

Wenn Sie jQuerys $.ajax() oder praktische Methoden wie $.post() verwenden, ist es wichtig, contentType und processingData auf false zu setzen, um eine automatische Serialisierung zu verhindern und das FormData-Format beizubehalten:

<code class="javascript">$.ajax({
  url,
  method: "POST",
  data: body,
  contentType: false,
  processData: false
})</code>
Nach dem Login kopieren

Vermeiden Sie die Axios-Versionen 0.27.1 und 1.0.0

Diese spezifischen Versionen von Axios haben bekannte Probleme bei der Verarbeitung von FormData. Wir empfehlen stattdessen die Verwendung von Fetch, got oder ky.

Das obige ist der detaillierte Inhalt vonSo übergeben Sie Formulardaten mit Axios: Sollte ich _boundary manuell festlegen?. 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