Endpoints の CORS サポートを有効にする

CORS(クロスオリジン リソース シェアリング)は、ウェブページ内で実行される XMLHttpRequest(XHR)呼び出しが、それとはオリジンが異なるリソースとやり取りできるようにするための標準メカニズムです。CORS を使用しない場合は、すべてのブラウザで適用されている同一オリジン ポリシーにより、クロスオリジン リクエストが阻止されます。CORS の詳しい背景情報については、Mozilla Developer Network(MDN)のリファレンス ドキュメントをご覧ください。

CORS 標準では、リクエストされたウェブサーバーが CORS をサポートしているかどうかを判断するために、ウェブ クライアントが CORS プリフライト OPTIONS を発行する必要があります。ウェブサーバーは CORS リクエストをサポートしている場合、適切な CORS レスポンス ヘッダーで OPTIONS リクエストを処理します。

バックエンド アプリケーションで CORS を処理する

バックエンドが CORS をサポートしている場合は、CORS リクエストをバックエンドに渡すように ESP または ESPv2 を構成できます。以下に示すように、API の OpenAPI 仕様でパススルーを有効にできます。

swagger: "2.0"
host: "my-cool-api.endpoints.my-project-id.cloud.goog"
x-google-endpoints:
- name: "my-cool-api.endpoints.my-project-id.cloud.goog"
  allowCors: True

ESP または ESPv2 で CORS を処理する

バックエンドが CORS をサポートしていない場合は、CORS 起動フラグを指定して CORS リクエストを処理するように ESP または ESPv2 を構成できます。この方法では、CORS プリフライト リクエストはバックエンド アプリケーションに渡されません。また、必要に応じて、ESP または ESPv2 は、構成された CORS ヘッダーをバックエンド サービスからのレスポンスに追加します。

ESP と ESPv2 では、次の CORS 起動オプションを利用できます。