Axios: Körper löschen unterstützen

Erstellt am 13. Mai 2017  ·  7Kommentare  ·  Quelle: axios/axios

Dies ist wahrscheinlich eine Designentscheidung des Axios-Teams und das aus gutem Grund, aber ich schreibe alle meine POST/GET/PUTs so:

const res = await axios.post(url, { 
  data: {
    ...
  }
})

Und mein Server erwartet manchmal Daten im DELETE-Request-Body (was technisch vielleicht nicht den Spezifikationen entspricht, aber dennoch üblich ist), in diesem Fall muss ich mein DELETE in dieser Form schreiben:

      const res = await axios({
        method: 'DELETE',
        url: 'url',
        data: {
          ...
        }
      })

Was gut funktioniert, aber ich bin gezwungen, die zweite Syntax zu verwenden, da axios.delete keinen Anforderungstext unterstützt.

Daher möchte ich anfordern, dass axios.delete einen Anfragetext unterstützt.

Danke

Hilfreichster Kommentar

axiox.delete unterstützt einen Anfragetext. Es akzeptiert zwei Parameter: url und optional config . Sie können config.data verwenden, um den Antworttext wie folgt festzulegen:

axios.delete(url, { data: { foo: "bar" } });

post , put und patch akzeptieren 3 Parameter: url , data und config , damit Sie es können können den zweiten Parameter verwenden, um den Antworttext wie folgt festzulegen:

axios.put(url, { foo: "bar" });

Ich hoffe es hilft!

Alle 7 Kommentare

Wir verwenden häufig data mit GET-Anforderungen auf dem Server und sie werden in Abfrageparameter übersetzt. Der Mangel an Datenunterstützung bei bestimmten Methoden ist ein großer Nachteil für Axios in meiner Hoffnung auf mehr isomorphen Code.

Danke, hier habe ich diese Antwort gefunden

axiox.delete unterstützt einen Anfragetext. Es akzeptiert zwei Parameter: url und optional config . Sie können config.data verwenden, um den Antworttext wie folgt festzulegen:

axios.delete(url, { data: { foo: "bar" } });

post , put und patch akzeptieren 3 Parameter: url , data und config , damit Sie es können können den zweiten Parameter verwenden, um den Antworttext wie folgt festzulegen:

axios.put(url, { foo: "bar" });

Ich hoffe es hilft!

Ich denke, das README macht es schwer zu verstehen:

  // `data` is the data to be sent as the request body
  // Only applicable for request methods 'PUT', 'POST', and 'PATCH'
  // When no `transformRequest` is set, must be of one of the following types:
  // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
  // - Browser only: FormData, File, Blob
  // - Node only: Stream, Buffer
  data: {
    firstName: 'Fred'
  },

Dieser Teil: besonders // Only applicable for request methods 'PUT', 'POST', and 'PATCH' .

Bitte fügen Sie diesen Kommentar zu den Dokumenten hinzu

Es befindet sich in den Dokumenten https://github.com/axios/axios#request -method-aliases

was ist der unterschied zwischen diesen beiden?

this.$axios.$delete(queryData.url,
        {
          params: { id: String(queryData.id) }
        })
this.$axios.$delete(queryData.url,
        {
          body: { id: String(queryData.id) }
        })

[params] hat auf meiner Seite funktioniert

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen