django で axios.delete で CSRF のエラーが出る

DELETEでパラメータを送ろうとして、何回か調べてしまっているのでメモ。

原因はヘッダの設定がうまくいってないからです。

コード

getHeader メソッドで取得できる値が以下のようだとします。

{
    headers: {
      "X-CSRFToken": cookies.get("csrftoken"),
      "content-type": "application/json",
    }
}

以下はうまくいきますが。

axios.delete(`/api/hoge/fuga/bar/`, getHeader(options));

以下はうまくいきません。

axios.delete(`/api/hoge/fuga/bar/`, params, getHeader(options));

DELETE メソッドでは、ヘッダとパラメータを以下のように一つのオブジェクトにまとめます。

let deleteObject = createDeleteObject(getHeader(options), params);
axios.delete(`/api/hoge/fuga/bar/`, deleteObject);
function createDeleteObject(header, params = {}) {
  return {
    headers: header["headers"],
    data: params,
  };
}
YouTube