Axios: Suporte excluir corpo

Criado em 13 mai. 2017  ·  7Comentários  ·  Fonte: axios/axios

Esta é provavelmente uma escolha de design da equipe axios e por um bom motivo, mas eu escrevo todos os meus POST/GET/PUTs assim:

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

E meu servidor às vezes espera dados dentro do corpo da solicitação DELETE (o que pode não estar tecnicamente de acordo com as especificações, mas mesmo assim é comum) nesse caso eu tenho que escrever meu DELETE neste formulário:

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

O que funciona bem, mas sou forçado a usar a segunda sintaxe porque o axios.delete não suporta um corpo de solicitação.

Portanto, gostaria de solicitar que axios.delete suporte um corpo de solicitação.

Obrigado

Comentários muito úteis

axiox.delete suporta um corpo de solicitação. Ele aceita dois parâmetros: url e opcional config . Você pode usar config.data para definir o corpo da resposta da seguinte forma:

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

post , put e patch aceitam 3 parâmetros: url , data e config para que você possa pode usar o segundo parâmetro para definir o corpo da resposta assim:

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

Espero que ajude!

Todos 7 comentários

Costumamos usar data com solicitações GET no servidor e elas são traduzidas para parâmetros de consulta. A falta de suporte de dados em certos métodos é uma grande desvantagem para axios em minhas esperanças de um código mais isomórfico.

Obrigado, aqui encontrei esta resposta

axiox.delete suporta um corpo de solicitação. Ele aceita dois parâmetros: url e opcional config . Você pode usar config.data para definir o corpo da resposta da seguinte forma:

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

post , put e patch aceitam 3 parâmetros: url , data e config para que você possa pode usar o segundo parâmetro para definir o corpo da resposta assim:

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

Espero que ajude!

Acho que o README está dificultando a compreensão:

  // `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, adicione este comentário aos documentos

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

qual a diferença entre esses dois?

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

[params] trabalhou do meu lado

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

emaincourt picture emaincourt  ·  3Comentários

Adman picture Adman  ·  3Comentários

Spartano picture Spartano  ·  3Comentários

c0debreaker picture c0debreaker  ·  3Comentários

Baoyx007 picture Baoyx007  ·  3Comentários