PUT、DELETE、HEADなどのメソッドはほとんどのWebブラウザで使用できますか? 質問する

PUT、DELETE、HEADなどのメソッドはほとんどのWebブラウザで使用できますか? 質問する

ここにいくつか質問がありました。RESTful サービスのデバッグ方法、そこには次のように記されている。

残念ながら、同じブラウザでは HTTP PUT、DELETE、さらには HTTP POST もある程度はテストできません。

また、次のような他のソースから、ブラウザは GET と POST のみをサポートしていると聞きました。

ただし、Firefox でいくつかの簡単なテストを行ったところ、送信PUTDELETEリクエストが期待どおりに機能することが分かりました。XMLHttpRequestつまり、正常に完了し、リクエストが正しい方法でサーバー ログに表示されます。クロス ブラウザーの互換性やわかりにくい制限など、私が見逃している側面があるのでしょうか?

ベストアンサー1

いいえ。HTML 5 仕様言及:

method および formmethod コンテンツ属性は、次のキーワードと状態を持つ列挙属性です。

キーワードget は、状態 GET にマッピングされ、HTTP GET メソッドを示します。GET メソッドは、データの要求と取得のみを実行し、その他の効果はありません。

キーワードpost は、状態 POST にマッピングされ、HTTP POST メソッドを示します。POST メソッドは、送信されたフォームのデータを処理するようサーバーに要求します。その結果、データベースにアイテムが追加されたり、新しい Web ページ リソースが作成されたり、既存のページが更新されたり、またはこれらすべての結果がもたらされる可能性があります。

キーワードdialog は状態 dialog にマッピングされ、フォームを送信すると、フォームが存在するダイアログ ボックスがある場合はそれを閉じ、それ以外の場合は送信しないことを示します。

これらの属性の無効な値のデフォルトはGET状態です

つまり、HTML フォームはHTTP リクエスト メソッドとしてGETPOST のみをサポートします。この問題を回避するには、サーバーによって読み取られ、それに応じてリクエストがディスパッチされる隠しフォーム フィールドを使用して、他のメソッドを POST 経由でトンネリングします。

ただし、GETPOSTPUTDELETE は 、すべての主要な Web ブラウザー (IE、Firefox、Safari、Chrome、Opera) の XMLHttpRequest 実装 (つまり AJAX 呼び出し) によってサポートされています。

おすすめ記事