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});
パラメータ取れた!