「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ASP.NETコアWeb APIにクロスドメインリソース共有(CORS)を実装する方法は?

ASP.NETコアWeb APIにクロスドメインリソース共有(CORS)を実装する方法は?

2025-04-30に投稿されました
ブラウズ:270

How to Implement Cross-Origin Resource Sharing (CORS) in ASP.NET Core Web API?

asp.netコアWeb APIでcorsを有効にする:完全なガイド

クロスオリジンリソース共有(CORS)は、通常、ブラウザの現在のソースとは異なるドメインの場合、WebブラウザーがクロスオリジンHTTP要求を行うことを可能にするメカニズムです。 CORを有効にすることは、さまざまなドメインまたはポートでホストされているフロントエンドアプリケーションとバックエンドWeb API間のシームレスな通信を確保するために重要です。

cors

in startup.csを有効にします

ASP.NETコアでCORを有効にする優先方法は、startup.csファイルを使用することです。 ConfigureServicesメソッドで、次の行を追加してCORSパッケージをインストールし、CORSサービスを構成します。

services.AddCors();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
次に、configureメソッドで、app.usemvc():

を呼び出す前に、corsミドルウェアを構成します。

app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());
これにより、指定されたソース(この場合は "

http://example.com")からの任意の要求が可能になります。

グローバル構成cors

] すべてのコントローラーと操作に対してグローバルにCORを有効にする場合は、[enablecors]プロパティをstartup.csファイルに追加できます。

[アセンブリ:enablecors(typeof(mypolicy))]

[assembly: EnableCors(typeof(MyPolicy))]

services.addcors(options => { options.addpolicy( "mypolicy"、 policy => policy.allowanyorigin()。approaNymethod()。lowtanyheader()); });

services.AddCors(options =>
{
    options.AddPolicy("MyPolicy",
        policy => policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});

カスタムヘッダーを追加

CORS構成で他のカスタムヘッダーを指定する必要がある場合は、App.USECORSステートメントでオプションオブジェクトを変更できます。

app.usecors(options => options.allowanyorigin()。lowanymethod()。 .withexposededers( "x-my-custom-header"));

app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
    .WithExposedHeaders("X-My-Custom-Header"));
マニュアルヘッダーを使用して追加された強制方法

組み込みのCORSミドルウェアを使用する代わりに、ミドルウェアを使用して必要なヘッダーを各応答に手動で追加できます。この方法はあまりお勧めしませんが、特に承認ヘッダーを使用する場合は、場合によっては役立ちます。

app.use(async(context、next)=> { context.response.headers.add( "Access-control-allow-origin"、 "*"); context.response.headers.add( "Access-control-allow-methods"、 "get、post、put、patch、delete"); context.response.headers.add( "Access-control-allow-headers"、 "x-pingother、content-type、authorization"); next(); });

app.Use(async (context, next) =>
{
    context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
    context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE");
    context.Response.Headers.Add("Access-Control-Allow-Headers", "X-PINGOTHER, Content-Type, Authorization");
    await next();
});
結論は

特定の要件に応じて、ASP.NETコアでCORを有効にする方法がいくつかあります。このガイドで概説されている手順に従って、フロントエンドアプリケーションとバックエンドWeb APIの間のシームレスなクロスオリジン通信を確保し、ドメイン間でデータと機能を共有できるようにします。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3