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
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
Comentários muito úteis
axiox.delete
suporta um corpo de solicitação. Ele aceita dois parâmetros:url
e opcionalconfig
. Você pode usarconfig.data
para definir o corpo da resposta da seguinte forma:post
,put
epatch
aceitam 3 parâmetros:url
,data
econfig
para que você possa pode usar o segundo parâmetro para definir o corpo da resposta assim:Espero que ajude!