axios側
axiosのdeleteメソッドの書き方は↓らしい
axios.delete("/url/to/api", {data: param});
ブラウザのデバッグコンソール(payload)でも値が入ってることが確認できたのでよさそう。
sinatra側はなんかエラー出てるけど一歩前進。
sinatra側
sinatraはデフォルトでdeleteメソッドを受け取れないらしい。。
↓のように_methodハックを許可する必要があるとのこと。
enable :method_override
_methodハックは本来、form要素がGETとPOSTしか使えないのを疑似的にPUTやDELETEを使えるようにする手段(のはず)。
とりあえずaxiosから渡すパラメータにも_method入れておきましょう。
const param = {
_method: "DELETE",
...
};
これでsinatraでリクエストを受け取ることが出来た…が、paramsが空っぽだ…!
ふたたびaxios側
色々ためすもののパラメータが飛ばない。
ふと、DELETEメソッドってGETと同様、リクエストボディないよなーと思って、↓のように書き換えてみた。
- axios.delete("/url/to/api", {data: param});
+ axios.delete("/url/to/api", {params: param});
パラメータ取れた!