Rfc2616 には、GET と POST 以外にも、DELETE や PUT などの多くのメソッドがリストされています。ただし、html フォームのメソッド フィールドでは、GET または POST のみを指定できるようです。
GET や POST 以外のリクエスト メソッドを使用する HTML ページにリンクやフォームを作成することはできますか?
Rfc2616 には、GET と POST 以外にも、DELETE や PUT などの多くのメソッドがリストされています。ただし、html フォームのメソッド フィールドでは、GET または POST のみを指定できるようです。
GET や POST 以外のリクエスト メソッドを使用する HTML ページにリンクやフォームを作成することはできますか?
以外のものを使用するリンクを作成することはできませんGET
。HTML が始まって以来、リンクは冪等であり、副作用がないことが意図されてきました。
フォームと についてはXMLHTTPRequests
、Caps のリンクを参照してください。PUT、DELETE、HEAD などのメソッドは、ほとんどの Web ブラウザーで使用できますか? .
デフォルトでは、これを行う方法はありません。リンクは常に GET を実行し、フォームは GET または POST を使用できます。
とはいえ、少し JavaScript を使えば可能です。data-method
たとえば Rails には、リンクに属性を追加するヘルパーが同梱されています。Rails-UJS は、これらのリンクのクリックを透過的にインターセプトし_method
、通常の HTTP メソッドをオーバーライドするために使用されるパラメーターでフォーム送信をトリガーする jQuery ライブラリです。最後に、Rack はパラメーターでリクエストをインターセプトし_method
、リクエスト メソッドを の値で上書きします_method
。
他のフレームワークも間違いなく同様のパターンに従います。
さらに詳細が必要な場合は、Rails、Rails-UJS、および Rackがどのように連携してこれを提供するかについての説明を書き上げました。
ライブラリがどのように機能するかを知っておくとよいでしょう。
data-method 属性を追加するだけで、<a data-method='put' href='whatever'>link</a>