Axios: Soporte para eliminar cuerpo

Creado en 13 may. 2017  ·  7Comentarios  ·  Fuente: axios/axios

Esta es probablemente una elección de diseño del equipo de axios y por una buena razón, pero escribo todos mis POST/GET/PUT así:

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

Y mi servidor a veces espera datos dentro del cuerpo de la solicitud DELETE (que puede no estar técnicamente de acuerdo con las especificaciones pero, sin embargo, es común), en cuyo caso tengo que escribir mi DELETE de esta forma:

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

Lo cual funciona bien, pero me veo obligado a usar la segunda sintaxis porque axios.delete no admite un cuerpo de solicitud.

Entonces, me gustaría solicitar que axios.delete admita un cuerpo de solicitud.

Gracias

Comentario más útil

axiox.delete admite un cuerpo de solicitud. Acepta dos parámetros: url y opcional config . Puede usar config.data para configurar el cuerpo de la respuesta de la siguiente manera:

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

post , put y patch aceptan 3 parámetros: url , data y config para que pueda puede usar el segundo parámetro para establecer el cuerpo de la respuesta de esta manera:

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

¡Espero eso ayude!

Todos 7 comentarios

A menudo usamos data con solicitudes GET en el servidor y se traducen a parámetros de consulta. La falta de soporte de datos en ciertos métodos es una gran desventaja para axios con la esperanza de obtener un código más isomorfo.

gracias aqui encontre esta respuesta

axiox.delete admite un cuerpo de solicitud. Acepta dos parámetros: url y opcional config . Puede usar config.data para configurar el cuerpo de la respuesta de la siguiente manera:

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

post , put y patch aceptan 3 parámetros: url , data y config para que pueda puede usar el segundo parámetro para establecer el cuerpo de la respuesta de esta manera:

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

¡Espero eso ayude!

Creo que el README hace que sea difícil de entender:

  // `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'
  },

Esta parte: // Only applicable for request methods 'PUT', 'POST', and 'PATCH' especialmente.

por favor agregue este comentario a los documentos

Está en los documentos https://github.com/axios/axios#request -method-aliases

¿Cuál es la diferencia entre estos dos?

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

[params] trabajó de mi lado

¿Fue útil esta página
0 / 5 - 0 calificaciones