問題タブ [http-options-method]
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.
cors - OPTIONS リクエストで ServiceStack が 405 を返す
ServiceStack を使用して REST Web サービスを構築しています。クロスドメイン リクエストを許可したいので、CorsFeature プラグインを登録しました。
私の AppHost は次のようになります。
次に、サービスに対して OPTIONS 要求が行われると、405 Method Not Allowed という結果になります。
リクエスト:
応答:
編集
空の Options メソッドをサービスに追加すると、実際に 405 がトリガーされなくなります。ただし、応答は空のようです。
以下を追加しても、空の応答が得られます。
httpReq.Method を httpReq.HttpMethod に、httpRes.EndServiceStackRequest() を httpRes.End() に変更する必要がありました。これは正しいです?
http - nginxで「OPTIONS *」リクエストを処理するには?
私の環境では、perlbal を使用してリクエストを nginx にリダイレクトしています。verify_backendがオンの場合。perbal は "OPTIONS *" リクエストを nginx に送信しますが、nginx はそれを不正なリクエストとして応答します。
RFC2616によると:
Request-URI がアスタリスク (" ") である場合、OPTIONS 要求は、特定のリソースではなく一般的な ?server に適用されることを意図しています。通常、サーバーの通信オプションはリソースに依存するため、" " リクエストは "ping" または "no-op" タイプのメソッドとしてのみ有用です。クライアントがサーバーの機能をテストできるようにする以外には何もしません。たとえば、これを使用して、HTTP/1.1 準拠 (またはその欠如) についてプロキシをテストできます。
perlbal はこの種のリクエストを送信しようとしていると思いますが、nginx はデフォルトでこれを処理できません。
リクエスト「OPTIONS * HTTP/1.0」を送信しようとすると、常に「HTTP 400 bad request」が表示されます。
127.0.0.1 - - [18/Feb/2013:03:55:47 +0000] "オプション * HTTP/1.0" 400 172 "-" "-" "-"
ただし、アスタリスク要求なしで「OPTIONS / HTTP/1.0」オプションで動作します:
127.0.0.1 - - [18/Feb/2013:04:03:56 +0000] "オプション/HTTP/1.0" 200 0 "-" "-" "-"
HTTP return 400 ではなく http return 200 で応答するように nginx を構成するにはどうすればよいですか?
codeigniter - PhilSturgeonのCodeigniterRestserverとBackbone.jsでのHTTPOPTIONSエラー
別のホスト/URLにあるRESTfulWebbackbone.js
サービスにモデルを保存しようとすると、アプリケーションがHTTP OPTIONSnotfoundエラーをスローします。
私の調査に基づいて、私はこの投稿から次のことを収集しました:
リクエストは常にOPTIONShttpリクエストヘッダーを送信し、POSTリクエストをまったくトリガーしません。
明らかに、「ユーザーデータに副作用を引き起こす」リクエストを含むCORSは、目的のHTTPリクエストメソッドを実際に送信する前に、ブラウザにOPTIONSリクエストヘッダーを使用してリクエストを「プリフライト」させ、承認を確認します。
私はこれを回避しようとしました:
- バックボーンのemulateHTTPをtrueに設定します。
Backbone.emulateHTTP = true;
また、ヘッダーですべてのCORSおよびCSRFオプションを許可しました。
header('Access-Control-Allow-Origin:*');
header( "Access-Control-Allow-Headers:Origin、X-Requested-With、Content-Type、Accept"); header( "Access-Control-Allow-Methods:GET、POST、OPTIONS");
Backbone.emulateHTTP
コード行が導入されたときにアプリケーションがクラッシュしました。
CodeIgniter RESTServerでOPTIONSリクエストに応答する方法はありますか?また、このリクエストの会話を無効にする他の方法はありますか?
私はこれを1つの解決策としてGithubで見つけました。少し時代遅れのようですので、使うべきかわかりません。
java - 「オプション」リクエストを受け取ったとき、Web サーバーはどのように応答しますか?
HTTP Web サーバーに Options メソッドを実装したいと考えています。しかし、このメソッドの動作に関する適切なチュートリアルはまだ見つかりませんでした。このメソッドを実装するコードを 1 つ作成しました。私のコードはこの質問の最後にあります。
しかし、私が使用したサーバーの動作は間違っていると思います。オプション要求を受け取ったときにサーバーが応答する正確な方法/手順を教えてください。親切な対応をお待ちしています。
クライアントコード
サーバー コード (私のサーバーでは PUT、POST、GET、HEAD、OPTIONS メソッドが許可されています)
これはサーバーが応答する正しい方法ですか? そうでない場合は、Options Request を取得したときにサーバーが動作していることを教えてください。
java - GET リクエストをコントローラー内の 1 つのメソッドにマップし、OPTIONS リクエストを別のメソッドにマップするように Spring MVC を構成する
注釈を使用すると、これは非常に簡単になります。
XMLでこれを行う方法が見つかりません。次のような処理を行うマッピング ハンドラはありますか。
任意のポインタをいただければ幸いです。