問題タブ [httpverbs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - ASP.NET MVC - RESTful コントローラー スキームを作成する方法は?
これが重複している場合は、お知らせください。簡単に調べたところ、私の質問に本当に答えるものが見つからなかったからです。
私は ASP.NET MVC 2 を試しています。Web フォームのバックグラウンドから来て、実際にはHTTP GETとHTTP POSTだけを扱いました。
GET/PUT/POST/DELETEをリポジトリのそれぞれのCRUD操作 (検索、挿入、更新、削除) に適用する方法を確認しようとしています。
次のアクションメソッドを持つ単一のコントローラーがあるとします。
それに関するいくつかの質問 - アクションメソッドに名前を付けたり分離したりする方法はありますか? モデル全体 (製品) を通過する必要がありますか、それとも id のみを通過する必要がありますか?
私が抱えている問題は、ビューで関連する HTTP 動詞を使用してこれらのアクション メソッドを呼び出す方法がわからないことです。
この段階では、3 つのビューがあると考えています。
- 「インデックス」 - モデルにバインドし
IEnumerable<Product>
、「編集」、「詳細」、および「削除」リンクを使用してすべての製品を一覧表示します - " Single
Product
" - "Update" ボタンを使用して、製品のすべての詳細を一覧表示する単一のモデルにバインドします。 - 「新規
Product
」 - 「作成」ボタンを使用して、製品を作成するためのフォームを使用して、単一のモデルにバインドします。
だから - 私の質問は、特定のコントローラーメソッドを特定の HTTP 動詞で呼び出すように指定するにはどうすればよいですか?
では、列挙Html.BeginForm
を指定できますが、FormMethod
GET と POST しかありません。
- PUT および DELETE コマンドを実行するにはどうすればよいですか?
- HTTP動詞ごとに個別のビューが必要ですか?
- 「削除」というリンクがある場合、コントローラーに対して HTTP DELETE コマンドを呼び出すことができますか、それともフォーム アクションの削除で新しいビューにリダイレクトする必要がありますか?
それとも、そもそもこれはばかげた/過剰な設計ですか?「GET」と「POST」に固執する必要がありますか?
私はこのスタイルの Web 開発 (REST) に (かなり) 慣れていないので、よろしくお願いします。:)
アップデート
そこで、まさにこのトピックに関する Stephen Walther の興味深い記事を見つけました。
彼は、HTML フォームが GET と POST のみをサポートしていることを示しています (私は REST スタイルの Web 開発に慣れていないため、これを知らなかったので、部分的に恥ずかしく思います)。
どうやら PUT/DELETE でコントローラー アクションを呼び出す唯一の方法は、AJAX を使用することです。真剣に?
では、ここで何をすべきか、GET/POST に固執する必要がありますか、それとも、基になる XmlHttpRequest コードを適切な関数の背後にラップする JavaScript ファイルを作成する必要がありますか?
ASP.NET MVC 開発者はどちらに傾いていますか? 確かに、誰かがこの同じ質問を自問したことがあります。
asp.net-mvc - クライアントがDELETEとPUTを使用できない場合、それらを自動的にオーバーロードするにはどうすればよいですか?
アプリケーションの起動時に、クライアントがサポートしていない動詞と動詞を検出し、POST動詞を自動的にオーバーロードするにはどうすればよいDELETE
ですPUT
か?
サーバー側で、これらのオーバーロードされたPOST動詞を適切なアクションにリダイレクトするにはどうすればよいですか?
オーバーライドされたDELETEリクエストがあるとしましょう。アクションに一致するコントローラーで適切な関数を呼び出すにはどうすればよいですか?
私の推測では、アクションフィルターを使用し、リフレクションを使用して、関数に一致する属性を検査する必要があります(この例では:) DeleteFoo(Guid Id)
。
php - フォームを投稿するときの post と put
フォームが送信されたことを評価するとき、メソッドが get ではなく post であることを確認します。これは、送信ボタンをクリックしてフォームが送信されたこと、および URL でデータを渡すスクリプトによってフォームが送信されただけではないことを知る良い方法だと言われました。
「置く」方法はどうですか。「post」とよく似ています。多かれ少なかれ、「投稿」によって提供されるメリットをあまり失うことなく、「投稿」の代わりに使用できますか?
ruby-on-rails - Rails 3は、「link_to」によって生成されたリンクをクリックしたときに使用されるHTTP動詞をどのように決定しますか?
2 つのリンクがあります。
生成されるリンクは次のとおりです。
と の両方をクリックするEdit
とDelete
、GET
メソッドが使用されます。
Railsはどの方法を使用するかをどのように決定しましたか?
リンクのdata-method="delete"
と とはどういうrel="nofollow"
意味ですか?Delete
httpverbs - acceptverbs httpverbs.get?
それの用途は何ですか???? acceptverbs(httpverbs.get)とhttpverbs.postについても説明します。
ありがとう
asp.net - IsPostbackは技術的にどのように機能しますか?
現在、Google Chrome以外のすべてのブラウザーが、同じページにポストバックするasp.netボタンをクリックすると、Page_Loadイベント内でIsPostbackへの呼び出しをtrueとして登録するという奇妙な問題が発生しています。
これにより、ASP .Netページ内のIsPostbackプロパティが技術的に実装されている方法を見つけようとしましたが、これは私が見つけるのに苦労しています。
これまでの私の考えは、それが以下に関連している可能性があるということです。
- リクエストのVERBタイプは、GETではなくPOSTです。
- ビューステート情報を含む非表示の入力には情報が存在しないため、以前に送信された制御情報は利用できません。
- リクエストヘッダーのhttpリファラーは現在のURLと同じです。
IsPostbackブールプロパティを決定するために使用される条件の実際の内訳を誰かが提供できますか?
注:問題を積極的に解決するためにこれを使用したいと考えているため、認識/理論ではなく実際の実装を探しています。また、MSDNを検索しましたが、これまで、メカニズムを正確にカバーする技術記事は見つかりませんでした。
よろしくお願いします、ブライアン。
asp.net-mvc - すべてのアクションで HTTP 動詞を制限する
すべてのアクションで使用できる HTTP 動詞を制限することは良い方法ですか? [HttpGet]
私のコードは、[HttpPost]
、 、[HttpPut]
、またはすべてのアクションを装飾しなくてもきれいですが[HttpDelete]
、堅牢性や安全性が低下する可能性もあります。GET バージョンが新しいフォームを返し、POST バージョンが新しいレコードを挿入する 2 つの「作成」アクションがあるように、動詞が明示的に必要でない限り、多くのチュートリアルやサンプル コードでこれが行われることはありません。
http - 残りの HTTP 動詞が使用されないのはなぜですか?
ほとんどの場合、Web サイトでは主にすべての操作にGET
andのみを使用しますが、他にも7 つの動詞があります。昔は使っていたが、今はあまり使っていない場所は?POST
それとも、一部のブラウザが他の動詞を認識しないためでしょうか? もしそうなら、なぜブラウザーベンダーはプロトコルの半分を実装することを選択するのでしょうか?
[アップデート]
この状況についての良い要約を提供するこの記事を見つけました: Why REST failed .
rest - URL の文字数制限の回避策として POST を使用する
API があり、URL の長さの制限と要求での複雑なパラメーターの受け渡しのためにのみ POST 操作をサポートしている場合でも、RESTful アーキテクチャを使用していると言えますか?
上記が基本的に意味することは、この特定の (読み取り専用) API では、GET と POST の間に意味的な違いはないため、GET で実行できることは POST でも実行できるということです (ただし、その逆はありません。限界まで)。
これでもアーキテクチャのスタイルは RESTful になりますか?
ruby-on-rails-3 - Railsは特定の動詞でリダイレクトまたはレンダリングします
新しいアイテムが作成されたときにリソース インデックスにリダイレクトしたい
コントローラーの一部を次に示します。
興味のある行は ########## とマークされています
私はもう試した
といくつかの他のもの
適切な場所にリダイレクトされ、アイテムが正常に作成されます。問題は、それを取得できないことPOST
です。GET
そうしないと、私の見解にひどく厄介なことをするので、それを取得する必要があります。