LoginSignup
7
3

More than 3 years have passed since last update.

axiosでheaderとbodyを指定してDELETEする方法

Posted at

headerとbodyを同時にセットできない

axiosを使用してDELETEを呼び出す際に、headerとbodyを以下のようにセットしたところうまく動作しませんでした。

axios.delete(URL, header, payload);

どうやらDELETEの場合にはPOSTのように引数を3つ取ることが出来ないようです。

headersとdataというプロパティを持つオブジェクトをセットすることで解決

以下のようにheaders,dataという2つのプロパティを持つオブジェクトを作り、2つ目の引数として渡すことで正しくヘッダーとボディがセットされました。dataのプロパティがbodyにマップされるようです。
(こちらをよく読むと書いてあります)

axios.delete(URL, {
  headers: {
    Authorization: authorizationToken
  },
  data: {
    param1: param1
  }
});

まとめ

ヘッダー情報とボディを用いてaxiosでDELETEを呼びだす場合には、単一のオブジェクトでラップすることで呼び出すことが可能です。
現在のHTTPの仕様上はDELETEにBodyを含めることは可能ですが、以前は許されていませんでした。API設計をする際にDELETEにBodyを含める設計を行うと、このような問題に遭遇します。必要な情報はパラメータに押し込んだほうがリスクは少ないと思われます。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3