問題タブ [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.
node.js - プリフライトを使用したNode.JSのクロスドメインPOSTリクエスト?
親愛なる皆さん、私は Node.js を始めたばかりだと考えてください。
Node.js サーバーで解析する HTML フォームからクロスドメイン フォーム データを取得しようとしています。プリフライトを必要とする POST リクエストではなく、単純な POST データでこれを行うことができました。
私はcloud9 app serversで Node コードを実行しています。また、Corsモジュールを使用してリクエストを処理しています。このモジュールは、単純なリクエスト (単純なリクエストが機能することを確認するためにここでテストします) ではうまく機能しますが、プリフライトが必要なリクエストでは、Chrome インスペクター コンソールからこの結果を取得します。
ここに私のserver.jsコードがあります:
これはなぜですか?また、プリフライトで POST の OPTION リクエストに満足に答えるにはどうすればよいですか?
ありがとう、助けていただければ幸いです。
jquery - 別のドメイン URL への Ajax 呼び出しでの 401 プリフライト エラー
Chrome ネットワーク XHR ツールに表示される私のリクエスト。
私のAjax呼び出し:
そして Symfony2 の cors 設定:
allow_headers: ['X-Custom-Auth'] を allow_headers: ['*'] に変更すると、代わりに 500 エラーが発生します。
私は、API リクエストをチェックする OSX アプリである PAW によって提案されている Content-Type:application/octet-stream も試しました。実際、この要求は PAW から 200 OK です。
また、CURL を実行すると、200 OK で JSON が取得されます。
私は何が欠けていますか?どうもありがとう。
ajax - HAProxy CORS OPTIONS ヘッダー インターセプトのセットアップ
私の NGinx セットアップでは、ajax プリフライトからの OPTIONS リクエストをインターセプトし、正しい CORS ヘッダーと 200 レスポンスで応答して、リクエストを続行できるようにすることができました。フロントエンド プロキシを HAProxy に統合しようとしていますが、このパズルのピースを機能させるにはいくつかの問題があります。
私の特定の問題は、OPTIONS リクエストに適切に応答できるサーバーがある場合に適切な CORS オプションを追加できる一方で、プリフライト リクエストが発行されたときに、いくつかのバックエンドが 405 エラーで処理/応答できないことです。私の haproxy.cfg には、ヘッダーを追加するための次の行が含まれていました。
で与えられた解決策:
リクエストを Web サーバーに渡さずに HAProxy でレスポンスを送信する方法は、クライアントのリクエストからすべての正しいヘッダーを設定すると機能しますが、動的ではないため、理想的なソリューションではありません。
どんな助けでも大歓迎です!
angularjs - CORS プリフライト リクエストが無効な -1 ステータス コードを取得する
サーバーで nodejs を使用し、ポート 5000 でローカルに実行されているクライアントで angularjs を使用するフロントエンド Web アプリがあります。クライアント コードは、ローカルでも実行されているが IIS 6.2 でホストされている別のポートで実行されている別の Web API サービスに ajax 要求を行う必要があります。 . これにより、ブラウザがプリフライト リクエストを作成しようとしているクロスオリジン リクエストになります。ただし、プリフライトは失敗し、ajax エラー ハンドラーが呼び出され、応答のステータス コードは -1 であり、Chrome コンソールはプリフライト チェックが失敗したことを示し、おそらく「プリフライト リクエストへの応答がアクセス制御を通過しません」という標準エラー メッセージが表示されます。チェック: 要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。オリジン ' https://localhost:5000' したがって、アクセスは許可されません。応答の HTTP ステータス コードは 500 でした。
私の知る限り、Web API サービスで CORS を有効にしています。これが私の Application_Start メソッドの最初の部分です。
この正確なセットアップは同僚のマシンでうまく機能しているので、特に私のマシンで何かが起こっています. 私は困惑しています、何が起こっているのかについてのアイデアはありますか? どこかで何かが間違って設定されていると思います。
cors - 無効な CORS プリフライト リクエストを処理する方法は?
CORS プリフライト リクエストが届いたが、1 つ以上のAccess-Control-Request-*
ヘッダーにサポートされていない値が指定されているとします。サーバーはこれをブラウザにどのように伝える必要がありますか?
いくつかの例:
- ブラウザは でプリフライト リクエストを送信し
Access-Control-Request-Method: PUT
ますが、サーバーは指定されたリソースに対する PUT リクエストを許可しません。 - ブラウザはプリフライト リクエストを送信し
Access-Control-Request-Headers: X-PINGOTHER
ますが、サーバーはそのヘッダーを許可/理解していません。
私が見つけた唯一の手がかりはW3C のドキュメントにあり、プリフライトされた応答に問題がある場合、サーバーは「この要求を終了する」必要があることを示していますが、実際にそれがどのように見えるかはわかりません (サーバーは本当に応答を返さずに接続を終了するはずですか??)。
Access-Control-Allow-*
それとも、ブラウザは応答ヘッダーをチェックするだけで何か問題があったことを認識できるため、サーバーは検証を気にする必要はまったくありませんか?