共用方式為


YARP 跨原始來源要求 (CORS)

介紹

反向代理可以在將要求轉送到目的地伺服器之前,處理跨原始來源的要求。 這可以減少目的地伺服器上的負載,並確保在您的應用程式中實作一致的原則。

違約

除非在路由或應用程式組態中啟用,否則不會自動比對CORS預檢請求。

配置

CORS 原則可以透過 RouteConfig.CorsPolicy 來指定每個路由,而且可以從組態檔的 Routes 區段系結。 如同其他路由屬性,這可以修改和重載,而不需重新啟動 Proxy。 原則名稱不區分大小寫。

例:

{
  "ReverseProxy": {
    "Routes": {
      "route1" : {
        "ClusterId": "cluster1",
        "CorsPolicy": "customPolicy",
        "Match": {
          "Hosts": [ "localhost" ]
        }
      }
    },
    "Clusters": {
      "cluster1": {
        "Destinations": {
          "cluster1/destination1": {
            "Address": "https://localhost:10001/"
          }
        }
      }
    }
  }
}

CORS 原則 是 Proxy 所使用的 ASP.NET 核心概念。 Proxy 提供上述設定來指定每個路由的原則,其餘則由現有的 ASP.NET Core CORS 中間件處理。

CORS 原則可以在應用程式中設定,如下所示:

services.AddCors(options =>
{
    options.AddPolicy("customPolicy", builder =>
    {
        builder.AllowAnyOrigin();
    });
});

然後新增 CORS 中間件。

app.UseCors();

app.MapReverseProxy();

預設政策

在路由 default 參數中指定值 CorsPolicy,表示路由會使用 CorsOptions.DefaultPolicy中定義的原則。

停用 CORS

在路由的 disable 參數中指定值 CorsPolicy 表示 CORS 中間件會拒絕 CORS 要求。