問題タブ [preflight]
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.
ajax - プリフライト CORS リクエストの導入の背後にある動機は何ですか?
クロスオリジン リソース共有は、Web ページが XMLHttpRequests を別のドメイン (ウィキペディアから) に送信できるようにするメカニズムです。
私はここ数日間 CORS をいじっていますが、すべてがどのように機能するかについてかなりよく理解していると思います。
したがって、私の質問は、CORS / プリフライトがどのように機能するかについてではなく、新しいリクエスト タイプとしてプリフライトを考え出す理由についてです。実際のリクエスト (RR) が受け入れられるかどうかを確認するためだけに、サーバー A がサーバー B にプリフライト (PR) を送信する必要がある理由がわかりません。以前のPR。
かなり検索した後、 www.w3.org (7.1.5)で次の情報を見つけました。
この仕様が存在する前に特定のユーザー エージェントから発信できなかったクロスオリジン リクエストからリソースを保護するために、プリフライト リクエストが作成され、リソースがこの仕様を認識していることを確認します。
これはこれまでで最も理解しにくい文だと思います。私の解釈(「最善の推測」と呼ぶべきです)は、仕様を認識していないサーバーCからのリクエストに対してサーバーBを保護することに関するものです。
誰かがシナリオを説明したり、PR + RR が RR 単独よりもうまく解決する問題を示したりできますか?
ajax - カスタム HTTP ヘッダーを使用してクロス ドメイン リクエストを送信するときにプリフライト OPTION リクエストを無効にする
カスタム http ヘッダーを使用してクロスドメイン ajax 呼び出しを実行しようとすると、ブラウザが余分な「OPTION」リクエストを送信していることに気付きました。「プリフライトリクエスト」と呼ばれるものだと思います。
この機能を無効にして、最初のリクエストのみを送信することはできますか?
これは私のjavascriptテストコードです:
助けてくれてありがとう!
ajax - バックボーン同期は CORS プリフライトを送信しますが、その後は何もしません
model.save() でバックボーン モデルを保存しようとしました。urlRoot を指定し、POST 呼び出しを待っています。リクエストを待っている別のサブドメインに REST サービスがあります。
これらのリクエスト ヘッダーは、model.save() で取得しました。
Sy は、これはプリフライト リクエストであると述べたので、次のヘッダーで応答する必要があります。
試してみましたが、これは機能していません。ブラウザはサーバーに別のリクエストを送信しません:S:S:S:S:S
修正方法は?これはバックボーンのバグですか?
javascript - FirefoxでOPTIONS応答200でajaxプリフライトが失敗する
次のコードがあります。
呼び出すと、次のアラートが表示されます。
- URI
- 準備状態=1、ステータス=0
- 準備状態 = 2、状態 = 0
- 準備状態 = 4、状態 = 0
- プリフライト OK
OPTIONS リクエストがブラウザから送信され、「200」レスポンスを受け取りました。より正確には:
GET 要求は送信されず、onreadystatechange からの状態はこれ以上ありません。
これは、Firefox 21.0 Mozilla Firefox for Ubuntu Canonical - 1.0 (これは、Firefox に関するヘルプ/レポートです) から、ローカル ファイルシステムの html ファイルで行われました。
ここで何が問題なのですか?
cors - すべての CORS リクエストで OPTIONS プリフライトを期待する必要がありますか?
クライアント側で構成された 2 種類の CORS 要求があります。1 つは GET メソッドを実装し、もう 1 つは POST を実装します。
最初の GET で最初のプリフライト OPTIONS が発行された後、後続の GET および POST (jQuery Ajax オブジェクトを使用してほぼ同じように構成されます) の前にプリフライトはありません。
Chrome ネットワーク パネルを監視しているときに、後続のリクエストの前に OPTIONS プリフライトが表示されません。
サーバーが受け入れるメソッドとオリジンをブラウザーが確認し、最初のプリフライトが受け入れられると、ブラウザーとサーバーの間で CORS 通信が確立されているため、ブラウザーは次のプリフライトを送信しませんか?
.net - .NET Web API CORS PreFlight リクエスト
他のドメインの Web API に PUT および DELETE CORS リクエストを作成する際に問題があります。
チュートリアルhttp://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#create-webapi-projectで API をコーディングしました。
GET および POST リクエストは正常に機能しますが、DELETE および PUT は機能しません。次のメッセージが表示されます。
ASP.NET Web API を使用した PUT および DELETE の CORS サポートで提案されている WebConfig にコードを追加すると、最初のエラーのみが発生します。
誰でもこれで私を助けてくれますか?