C'est probablement un choix de conception de l'équipe axios et pour une bonne raison, mais j'écris tous mes POST/GET/PUT comme ceci :
const res = await axios.post(url, {
data: {
...
}
})
Et mon serveur attend parfois des données à l'intérieur du corps de la requête DELETE (ce qui peut ne pas être techniquement conforme aux spécifications mais néanmoins c'est courant), auquel cas je dois écrire mon DELETE sous cette forme :
const res = await axios({
method: 'DELETE',
url: 'url',
data: {
...
}
})
Ce qui fonctionne bien mais je suis obligé d'utiliser la deuxième syntaxe car le axios.delete
ne prend pas en charge un corps de requête.
Je voudrais donc demander que axios.delete
prenne en charge un corps de requête.
Merci
Nous utilisons souvent data
avec les requêtes GET sur le serveur et elles sont traduites en paramètres de requête. Le manque de prise en charge des données sur certaines méthodes est un gros inconvénient pour axios dans mes espoirs d'un code plus isomorphe.
Merci, j'ai trouvé cette réponse
axiox.delete
prend en charge un corps de requête. Il accepte deux paramètres : url
et facultatif config
. Vous pouvez utiliser config.data
pour définir le corps de la réponse comme suit :
axios.delete(url, { data: { foo: "bar" } });
post
, put
et patch
acceptent 3 paramètres : url
, data
et config
pour que vous puissiez pouvez utiliser le deuxième paramètre pour définir le corps de la réponse comme ceci :
axios.put(url, { foo: "bar" });
J'espère que ça aide!
Je pense que le README
rend difficile la compréhension :
// `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'
},
Cette partie : // Only applicable for request methods 'PUT', 'POST', and 'PATCH'
surtout.
s'il vous plaît ajouter ce commentaire à la docs
C'est sur les docs https://github.com/axios/axios#request -method-aliases
quelle est la différence entre ces deux?
this.$axios.$delete(queryData.url,
{
params: { id: String(queryData.id) }
})
this.$axios.$delete(queryData.url,
{
body: { id: String(queryData.id) }
})
[params] a fonctionné de mon côté
Commentaire le plus utile
axiox.delete
prend en charge un corps de requête. Il accepte deux paramètres :url
et facultatifconfig
. Vous pouvez utiliserconfig.data
pour définir le corps de la réponse comme suit :post
,put
etpatch
acceptent 3 paramètres :url
,data
etconfig
pour que vous puissiez pouvez utiliser le deuxième paramètre pour définir le corps de la réponse comme ceci :J'espère que ça aide!