ここにいくつか質問がありました。RESTful サービスのデバッグ方法、そこには次のように記されている。
残念ながら、同じブラウザでは HTTP PUT、DELETE、さらには HTTP POST もある程度はテストできません。
また、次のような他のソースから、ブラウザは GET と POST のみをサポートしていると聞きました。
- http://www.packetizer.com/ws/rest.html
- http://www.mail-archive.com/ [email protected] /msg13518.html
- http://www.xml.com/cs/user/view/cs_msg/1098
ただし、Firefox でいくつかの簡単なテストを行ったところ、送信PUT
とDELETE
リクエストが期待どおりに機能することが分かりました。XMLHttpRequest
つまり、正常に完了し、リクエストが正しい方法でサーバー ログに表示されます。クロス ブラウザーの互換性やわかりにくい制限など、私が見逃している側面があるのでしょうか?
ベストアンサー1
いいえ。HTML 5 仕様言及:
method および formmethod コンテンツ属性は、次のキーワードと状態を持つ列挙属性です。
キーワードget は、状態 GET にマッピングされ、HTTP GET メソッドを示します。GET メソッドは、データの要求と取得のみを実行し、その他の効果はありません。
キーワードpost は、状態 POST にマッピングされ、HTTP POST メソッドを示します。POST メソッドは、送信されたフォームのデータを処理するようサーバーに要求します。その結果、データベースにアイテムが追加されたり、新しい Web ページ リソースが作成されたり、既存のページが更新されたり、またはこれらすべての結果がもたらされる可能性があります。
キーワードdialog は状態 dialog にマッピングされ、フォームを送信すると、フォームが存在するダイアログ ボックスがある場合はそれを閉じ、それ以外の場合は送信しないことを示します。
これらの属性の無効な値のデフォルトはGET状態です
つまり、HTML フォームはHTTP リクエスト メソッドとしてGETとPOST のみをサポートします。この問題を回避するには、サーバーによって読み取られ、それに応じてリクエストがディスパッチされる隠しフォーム フィールドを使用して、他のメソッドを POST 経由でトンネリングします。
ただし、GET、POST、PUT、DELETE は 、すべての主要な Web ブラウザー (IE、Firefox、Safari、Chrome、Opera) の XMLHttpRequest 実装 (つまり AJAX 呼び出し) によってサポートされています。