これはおそらくaxiosチームによる設計上の選択であり、正当な理由がありますが、私はすべてのPOST / GET / PUTを次のように記述しています。
const res = await axios.post(url, {
data: {
...
}
})
そして、私のサーバーは、DELETEリクエスト本文内のデータを期待することがあります(技術的には仕様に準拠していない可能性がありますが、それでも一般的です)。その場合、DELETEを次の形式で記述する必要があります。
const res = await axios({
method: 'DELETE',
url: 'url',
data: {
...
}
})
これは正常に機能しますが、 axios.delete
はリクエスト本文をサポートしていないため、2番目の構文を使用する必要があります。
そこで、 axios.delete
がリクエスト本文をサポートすることをリクエストしたいと思います。
ありがとう
サーバー上のGETリクエストでdata
を使用することがよくあり、それらはクエリパラメータに変換されます。 特定のメソッドでのデータサポートの欠如は、より同形のコードを望んでいるaxiosにとって大きな欠点です。
ありがとう、ここで私はこの答えを見つけました
axiox.delete
はリクエスト本文をサポートします。 url
とオプションのconfig
の2つのパラメーターを受け入れます。 config.data
を使用して、応答本文を次のように設定できます。
axios.delete(url, { data: { foo: "bar" } });
post
、 put
、およびpatch
は、 url
、 data
、およびconfig
の3つのパラメーターを受け入れるため、 2番目のパラメーターを使用して、次のように応答本文を設定できます。
axios.put(url, { foo: "bar" });
それが役に立てば幸い!
README
は、理解を難しくしていると思います。
// `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'
},
この部分:特に// Only applicable for request methods 'PUT', 'POST', and 'PATCH'
。
このコメントをドキュメントに追加してください
これら2つの違いは何ですか?
this.$axios.$delete(queryData.url,
{
params: { id: String(queryData.id) }
})
this.$axios.$delete(queryData.url,
{
body: { id: String(queryData.id) }
})
[params]私の側で働いた
最も参考になるコメント
axiox.delete
はリクエスト本文をサポートします。url
とオプションのconfig
の2つのパラメーターを受け入れます。config.data
を使用して、応答本文を次のように設定できます。post
、put
、およびpatch
は、url
、data
、およびconfig
の3つのパラメーターを受け入れるため、 2番目のパラメーターを使用して、次のように応答本文を設定できます。それが役に立てば幸い!