EntityServiceとCORS

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ブラウザのセキュリティにより、Webページが別のドメインに対してAJAXリクエストを行うのを防ぎます。この制限は、「同一生成元ポリシー」と呼ばれます。ただし、他のサイトでWeb APIを呼び出さなければならない状況もあります。

Cross Origin Resource Sharing (CORS) は、サーバーが同一生成元ポリシーを緩和できるようにするW3C標準です。CORSを使用すると、サーバーは一部のクロスオリジンリクエストを明示的に許可し、他のリクエストを拒否できます。

詳細については、「ASP.NET Web APIでのクロスオリジン要求の有効化」を参照してください。

CORSを構成する

Sitecore.Services.Client Servicesパッケージは、Sitecore.Services.Infrastructure.Web.Http.ServicesHttpConfiguration.ConfigureServicesでCORSのサポートを登録します ( initializeパイプラインはこれを呼び出します)。

config.EnableCors();

EntityServiceコントローラーのCORSを有効にする

CORSを有効にするには、コントローラー クラスに EnableCors属性を追加し、必要に応じて 、originsheaders、およびmethodsパラメーターを指定します。

たとえば、次のコントローラーには、すべてのリソース制限パラメーターのワイルドカード値があります。

[ServicesController][EnableCors(origins: "*", headers: "*", methods: "*")]public class TestController : EntityService<SimpleData>

実稼働環境では、リソースにアクセスできるものについて、より制限の厳しい定義を使用する必要があります。

CORSとItemService

ItemServiceのCORSサポートはありません。

Sitecore.Services.Infrastructure.Sitecore.Controllers.ItemServiceControllerはシール・クラスであるため、EnableCors属性を指定するクラスを派生させることはできません。

この記事を改善するための提案がある場合は、 お知らせください!