問題タブ [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.
jquery - Post でクロス コールが機能するが、プリフライトで失敗する
Web サイトからサードパーティのドメイン/サーバーへの Web サービス呼び出しを行う必要があります。content-type:text/plain の Post メソッドで jQuery Ajax を使用してこの呼び出しを行っていますが、正常に動作しています。
しかし、私は content-type: text/xml に変更していますが、それは投げています:
プリフライト要求への応答がアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。
サードパーティのサーバーに設定して、当社のウェブサイトへのアクセスを許可します。そして、content-type:text/plain で呼び出しを行っているときに、このヘッダーを取得しています。
また、サードパーティのサーバーに以下を追加しました。
プリフライト リクエストが応答で「Access-Control-Allow-Origin」を取得しない理由を教えてください。
c# - C# でクロス ドメイン API を呼び出す方法
C# を使用して別のサーバーの API を呼び出す必要があります。私は次の方法を使用しています
しかし、それは常に与えます
403禁止します
この API の開発者に問い合わせたところ、プリフライト リクエストも送信する必要があるとのことでした。
javascript - Pingfederate opentoken モジュールの CORS リクエストが 200 ではなく 302 を返す
Ping Federate を使用して 2 つの Web サーバーを保護しています (IIS と、IIS 統合キットまたは Ping の opentoken モジュールを使用して保護されている両方)。1 つのサーバーは WEB API アプリケーションをホストし、もう 1 つのサーバーは Web ページをホストします。Web API アプリケーションでは CORS が有効になっています。
Web ページは、JSON データを含む Ajax ポスト リクエストを API サーバーに送信します。これにより、ブラウザはプリフライト オプション リクエストを開始します。API サーバーでは、Ping モジュールは資格情報を含まないこの要求をインターセプトし (仕様では、プリフライト オプション要求には資格情報が含まれていないとされています)、200 を返す必要がある場合に、Web API コードがそれを処理できるようになる前に 302 リダイレクトを返します。 .
私の唯一の推測は、オプション要求を処理するカスタム モジュールを作成し、それを opentoken モジュールの前にインストールすることです。他に考えられる/より良い解決策はありますか?
iis - IIS でホストされている WebAPI の CORS の問題
Taiseer Joudeh によるこの非常に素晴らしい例で示されているのと同じトークン ベースの認証メカニズムを使用するアプリケーションを実装しようとしています。
私のアプリケーションでは、Cors の問題に遭遇し続けました。構成によっては、POST がトークンを取得するためのプリフライト (OPTIONS) リクエストで 500 エラーが発生するか、トークンを取得できても、実際の API 呼び出しに対する GET リクエストのプリフライト リクエストで 404 エラーが発生します。ベアラー トークン。
1 つの違いは、Taiseer のコードが IISExpress (または Azure) でホストされるようにセットアップされ、私のコードはローカル IIS (現時点では Windows 7 で実行中) でホストされていることです。
直感で、彼の API をローカル IIS でホストしようとしたところ、まったく同じ問題が見つかりました。(トークンのプリフライト リクエストで 500 エラーが発生し、実際の API は正常に動作するようです)
私が読んでいる限りでは、これは IIS のモジュールとハンドラーと WebApi の Cors 実装の間で何らかの競合があるように見えますが、Taiseer の実装は Azure でホストされている場合に機能するため、おそらく IIS のバージョンの違いです (I' m は現在 Windows 7 で実行されています)。
問題の原因を突き止めるにはどうすればよいですか?
javascript - CORS リクエストにはプリフライト時間がかかりますか?
AJAX リクエストを使用して、POST 経由で別のドメインにデータを送信します。私のコンテンツ タイプは標準ではないため (JSON 形式です)、プリフライト リクエストが必要です。(リクエスト方法: OPTIONS)
このウィキペディアのクロスドメイン XHR コールチャートで説明されているように
ブラウザがサーバーに 2 回アクセスする必要があるため、これには時間がかかるのでしょうか? 多分それは各ブラウザの動作に依存しますか?
content-type "plain-text" を使用してプリフライト リクエストを回避することで、時間を節約できますか?
php - Access-Control-Allow-Origin が原因で PHP-AJAX CORS が失敗する
以下のコードを使用して AJAX 呼び出し (CORS) を実行しようとしています。
上記のコードを次から実行しています。
で書かれたPHPコードhttp://localhost/MySpace
は次のとおりです。
私の理解によれば、これはうまくいったはずです。しかし、私はこのエラーが発生しています:
これを機能させるにはどうすればよいですか?それとも、私は何か完全に間違っていますか?
リクエストをデバッグするための提案に従って、curl リクエストを作成してみました:
Access-Control-Allow-Origin
それに応じて、次のようにマークされていることがわかります*
。
コメントに従って、以下のコードを my に追加しました.htaccess
:
@編集:
これは私の応答ヘッダーです:
これは私のリクエストヘッダーです:
angularjs - Web API への AngularJS OPTIONS リクエストが失われる
別のドメインで AngularJS から WebAPI への投稿リクエストを作成しようとしています。
CORSリクエストを処理するためにWeb APIが正しくセットアップされていると思います。Chrome Advanced REST クライアントを使用して CORS OPTIONS リクエストを行うと、正しいヘッダーと 200 レスポンス コードが返されます。
上記の POST 呼び出しを行うと、プリフライト OPTIONS リクエストが行われます。これは常に 504 コードでタイムアウトします。Application_BeginRequest のロギングはヒットしません (Chrome プラグインから呼び出す場合)。
AngularJS からの呼び出しと Chrome プラグインからの呼び出しの違いは何ですか? どちらも同じマシンから実行されており、AngularJS は localhost のアプリケーションで実行されています。両方の呼び出しで同じヘッダーが設定されています。