LoginSignup
0
0

More than 1 year has passed since last update.

【解決】axios.deleteのリクエストがsinatraで受け取れずに困った

Posted at

axios側

axiosdeleteメソッドの書き方は↓らしい

axios.delete("/url/to/api", {data: param});

ブラウザのデバッグコンソール(payload)でも値が入ってることが確認できたのでよさそう。
sinatra側はなんかエラー出てるけど一歩前進。

sinatra側

sinatraはデフォルトでdeleteメソッドを受け取れないらしい。。
↓のように_methodハックを許可する必要があるとのこと。

enable :method_override

_methodハックは本来、form要素がGETPOSTしか使えないのを疑似的にPUTDELETEを使えるようにする手段(のはず)。
とりあえず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});

パラメータ取れた!

0
0
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
0
0