teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/06/07 21:31

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -16,4 +16,13 @@
16
16
 
17
17
  > 解決策
18
18
 
19
- post() に指定するミドルウェア内で ``_method`` パラメータの有無で切り分ける。
19
+ post() に指定するミドルウェア内で ``_method`` パラメータの有無で切り分ける。
20
+
21
+ ----
22
+ [リクエストメソッド](https://developer.mozilla.org/ja/docs/Web/HTTP/Methods) は数多くありますが、ブラウザでは GET/POST で事足りるという実装で、2種類しか使えません。
23
+
24
+ どうしても他のメソッドを使いたい場合
25
+ 1. WebフォームのPOST時のオレオレ・ルールを作る(フレームワークや言語レベルでのルール)。
26
+ 2. サーバー側 POST後の処理を仕様とは異なる実装(ルールに応じたフォームパラメータ名``_method`` の値)で判別、処理。ログアナライザの事情に合わせ、本来は POSTメソッドだが、別のメソッドだったとウソを記録する。
27
+
28
+ 仕様に定められた通りに実装されていない環境下での「フェイク(誤魔化し)」の一例と言えます。

1

追記

2020/06/07 21:31

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -10,4 +10,10 @@
10
10
  1. フォームのマークアップ構造は ``form[method=post]>input[type=hidden][name=_method][value=DELETE]``
11
11
  2. POSTされたサーバー処理で ``{_method: "DELETE"}``を 優先処理するコードにした。
12
12
 
13
- という話です。
13
+ という話です。
14
+
15
+ 追記)
16
+
17
+ > 解決策
18
+
19
+ post() に指定するミドルウェア内で ``_method`` パラメータの有無で切り分ける。