問題タブ [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.
asmx - HTTP 1.1 OPTIONS 要求に応答するように ASMX を構成できますか?
ASMX は暗黙的に OPTIONS 動詞を許可していないようです。POST動詞**が発行される前に、利用可能なOPTIONSをサーバーに最初に照会するPOSTでjQuery AJAX呼び出しを使用しているため、この質問を投稿しています。
既定では、Web.config はすべての動詞をレガシ ASMX にマップするため、この部分的な構成サンプルに示すように、すべてが適切にルーティングされる必要があります。
ただし、OPTIONS 要求の HTTP 応答は常に 405 です。たとえば、次の要求が与えられます。
常に次のようになります。
jQuery AJAX 呼び出しは次のようになります。これは、かなり最近のEncosia ブログ投稿からの ASMX の操作に関する推奨事項です。
**注: POST の代わりに GET を使用するようにクライアントを切り替えたくありません。
まとめの質問:
ASP.NET を構成して、ASMX が本質的にエラーなしで OPTIONS 要求を処理できるようにすることはできますか?
私が検討した他のアイデア
jQuery.ajax(..)POST の前に OPTIONS 動詞を発行しないように指示する方法を探すことができますか?従来の ASMX に求めていることが不可能な場合は、他に 2 つの考えられるアイデアを検討しました。
- を実装し
System.Web.IHttpHandler、web.confighandlersセクションに貼り付けて、デフォルトの ASMX 動作の外側へのverbs=OPTIONS要求のみを管理します。path=*.asmxこれは実行可能な回避策です。 - WCF の使用に切り替えることができます。ただし、最初に ASMX があまりにも扱いにくいかどうかを知りたいです。
- を実装し
行動を起こす前に、私が見落としている可能性のあるもの、またはより良いオプション (しゃれなし) についてコミュニティに問い合わせたいと思います。
更新 #1
はい、私の Web サービスは別のドメインでホストされています。どうやら同じ元のポリシーでナビゲートする問題がたくさんあります。この更新は、すべてのことを考慮した質問のコンテキストに間違いなく価値のある情報です!
ただし、この質問が ASMX サーバーと HTTP レベルにとどまるようにしたいと思います。近い将来、関連するブラウザーの問題に直面する可能性がありますが、それらはこの質問の HTTP プロトコル レベルを解決する上で重要ではありません。ありがとう。
web-services - べき等の定義
したがって、「べき等」は次のように定義できます。
N回実行すると、アクションを1回だけ実行するのと同じ効果を持つアクション。
了解しました。簡単です。
私の質問は、この定義の微妙さについてです-アクションはそれ自体がべき等であると見なされますか、それともアクションに渡されるデータも考慮する必要がありますか?
例を挙げて明確にしましょう。
リソースを更新するPUTメソッドがあるとすると、それを呼び出します。f(x)
明らかにf(3)、入力として3を指定する限り、べき等です。また、同様に明らかなf(5)ことですが、リソースの値が変更されます(つまり、3または以前に存在していた値ではなくなります)
したがって、べき等について話すとき、私たちは(すなわちf(x))のようなアクション/関数の一般化を指しているのでしょうか、それともアクション/関数+それに渡されるデータ(すなわち)を指しているのf(3)でしょうか?
asp.net - フォーム認証。web.config で指定されたロールに許可された動詞を取得する
web.config でロールの動詞を指定しました。これは正常に機能し、ロールがページ Test.aspx に投稿しようとすると、ロール オブザーバーはログイン ページにリダイレクトされます。例:
ただし、Test.aspx ページで POST を実行しようとすると、ユーザーが少し混乱します。実際に何かをクリックする前に、投稿が許可されていないことをユーザーに通知したい. このようなもの:
問題は、この情報にどこからアクセスできるかということです。
ruby-on-rails - destroy_user_sessionはDeviseでは機能しません
rails 3.1.3とdevise1.5.3を使用destroy_user_session_pathしていますが、レイアウトファイルに追加すると、リンクが機能しません。ログインは問題ありませんが、このパスをクリックすると、次のエラーが発生します。
しかし、レーキルートを実行すると、次のルートが表示されます。
したがって、ルートは明らかにDELETE動詞を使用します。を追加することで動作するパスを取得できます:method => :deleteが、なぜそれを実行する必要があるのですか?ルートがあり、すでに削除するように構成されているので、どうしたのでしょうか。
asp.net-mvc - System.Web.Mvc.HttpVerbs クラスに TRACE、CONNECT、および OPTIONS がないのはなぜですか?
RFC 2616 HTTP/1.1 定義では、次の一般的な HTTP メソッドが存在すると述べています。
GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT
しかし、System.Web.Mvc.HttpVerbs列挙型には TRACE、OPTIONS、および CONNECT がありません。
特定の決定を下すためにリクエストから HttpVerb を取得するアクション フィルターがあるので (たとえば、リクエストがベース タイプ A のモデルを PUT している場合、データを設定します)、このユーティリティ コードは次のようになります。最後の 3 つのリクエストに対して ArgumentOutOfRangeException をスローしています (ほとんどが OPTIONS - Google 翻訳から来ているようです):
これを回避する方法がわからない - 何かアイデアはありますか?
私が考えることができる唯一のことは、最初に生のHTTPメソッドをチェックするようにすべての参照コードを変更し、次にTRACE、OPTIONS、またはCONNECTでない場合にのみユーティリティを呼び出すことです。これはちょっとハックです。
enum クラスにないのはなぜですか? それには具体的な理由がありますか?MVC は単にこれらのタイプのリクエストを処理できないのでしょうか?
OPTIONS メソッドの音からすれば、MVC に到達することさえできず、IIS 自体で処理する必要がありますか?
asp.net-mvc-3 - Restful ASP.NET MVC アプリですべての Html 動詞を使用する最も簡単な方法は何ですか?
今まで、私は常にコントローラ アクションでpostandを使用していました。get
[a] 休息の標準に準拠し、[b] get と post だけを使用しないようにするために、アプリで主要な動詞をすべて使用したいと考えています。
私が使用したい追加の動詞は
- 置く
- 消去
- パッチ
これを達成する最も簡単な方法は何ですか? 必要なすべての動詞 ( 以外patch) が で使用できることはわかっていますが[AcceptVerbs(...)]、それらを実装する方法が完全にはわかりません。
model-view-controller - IIS7でDELETE動詞を有効にするにはどうすればよいですか?
AJAXとDelete動詞メソッドを介して呼び出しを実行しましたが、IISサーバーからの応答は405メソッド禁止です。
私はそれについて読みました。どうやら大丈夫です、私はwebDAVをインストールしていません。ハンドラーやモジュールなどを定義しようとしましたが、成功しません!!!。
これは詳細なエラー情報です:
モジュールStaticFileModule
通知ExecuteRequestHandler
ハンドラーStaticFile
エラーコード0x80070001
誰もがこのエラーを受け取りますか?それについて何か光はありますか?
ruby-on-rails - Rails ルーティングと HTTP 動詞
私のアプリはワークアウト スケジューラです。
クライアントは通常、特定の日に 3 つのタイムスロットのいずれかでワークアウトを行うため、朝、正午、または夜のワークアウトをスケジュールするためのクイック追加機能を提供しています。
コードは機能していますが、正しい方法で実行しているとは思いません。
私のルートは次のとおりです。
私はこのようなものを介して使用します:
これは、リクエストが GET 経由で着信した場合に機能しますが、HTTP プロトコルのメソッド定義に基づいて正しくないようです。POST または PUT が正しいように思えますが、ルートに:via => :postまたはを追加:putすると、ルーティング エラーが発生して全体がバグります。
ここで何が正しいのか、この種の関数を実装する正しい方法は何ですか?
http - REST で古いデータを処理する方法は?
たとえば、アイテムを取得するために GET を呼び出し、DELETE で削除して再度 GET すると、2 番目の GET はどのように機能するのでしょうか?
つまり、REST の原則に正しく従うということは、GET をキャッシュできるので、これを行うための正しいアプローチとは何でしょうか? REST で古いデータを処理するためのアプローチは何ですか?
http - REST API、HTTP 動詞、ACCESS LOG
私は、RESTful API を設計する際に、RESTful API の優れたプラクティスに従うように努めてきました。たまたま非常に単純で一般的なものの1つは、従うのが難しくなっています。
GEThttp 動詞を使用してリソースを取得する
なんで?次のようなアカウント情報を取得する URI があるとします。
AXY_883772銀行システムの口座 ID はどこにありますか。セキュリティ監査では、次のような警告が表示されます。
- アカウント ID は HTTP ACCESS LOGS に表示されます
- アカウント ID がブラウザーの履歴にキャッシュされる可能性があります (ブラウザーを定期的に使用して RESTful API にアクセスすることはほとんどありません)
POSTそして、代わりにその動詞を使用することを「推奨」することになります。
だから、私の質問は:
私たちはそれについて何ができますか?セキュリティの推奨事項に従うだけGETで、ほとんどの場合使用を避けますか? 特定の URL へのアクセスをログに記録しないように、ある種の特別な APACHE/IIS/NGINX アクセス ログ構成を使用しますか?