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 起動オプションを利用できます。