プリフライト オプションの要求により、WCF サービスへのクロスドメイン HTTP アクセスがどのように有効になりますか?

Linda Hamilton
リリース: 2024-10-18 21:57:30
オリジナル
441 人が閲覧しました

How Do Preflight Options Requests Enable Cross-Domain HTTP Access to WCF Services?

プリフライト オプション要求を使用した WCF サービスへのクロスドメインへのアクセス

WCF サービスへのクロスドメイン HTTP 要求を試みる場合は、CORS の制限を考慮することが不可欠です。この記事では、これらの障害を克服するために、OPTIONS を使用して HTTP リクエストをプリフライトする方法について説明します。

プリフライト プロセス

実際のリクエストを送信する前に、ブラウザは OPTIONS リクエストを使用してリクエストをプリフライトし、サーバーがリクエストを許可します。このステップには、2 つの特別なリクエスト ヘッダーの送信が含まれます:

  • Access-Control-Request-Method: 実際のリクエストの HTTP メソッド (GET、POST など) を指定します
  • Access-Control -Request-Headers: 実際のリクエストに含まれるカスタム ヘッダーをリストします

サーバー側の応答

これらのプリフライト リクエストに対応するには、サーバーは適切なヘッダーで応答する必要があります。

  • Access-Control-Allow-Origin: リソースへのアクセスを許可するオリジンを指定します
  • Access-Control-Allow-Methods: リソースに許可される HTTP メソッドをリストします
  • Access-Control-Allow-Headers: 実際のリクエストで許可されるカスタム ヘッダーを列挙します

jQuery.getJSON によるプリフライト

GET リクエストに jQuery.getJSON を使用するには、以下が必要ですOPTIONS リクエストによるプリフライト。これは次のように実装できます。

<code class="javascript">$.ajax({
  url: "http://your.wcf.endpoint",
  type: "OPTIONS",
  success: function(data) {
    console.log("Preflight successful:", data);
  }
});

$.getJSON("http://your.wcf.endpoint", function(data) {
  console.log("Actual GET request:", data);
});</code>
ログイン後にコピー

応答ヘッダーの例

次のヘッダーを持つ受信プリフライト要求を考えてみましょう:

Origin: http://yourdomain.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: X-Custom-Header
ログイン後にコピー

サーバーは次のように応答する必要があります。

Access-Control-Allow-Origin: http://yourdomain.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: X-Custom-Header
ログイン後にコピー

Access-Control-Request-Headers は Access-Control-Allow-Headers 応答でエコーされる必要があり、'*' ワイルドカードは許可されません。

以上がプリフライト オプションの要求により、WCF サービスへのクロスドメイン HTTP アクセスがどのように有効になりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート