介紹
反向代理可以在將要求轉送到目的地伺服器之前,處理跨原始來源的要求。 這可以減少目的地伺服器上的負載,並確保在您的應用程式中實作一致的原則。
違約
除非在路由或應用程式組態中啟用,否則不會自動比對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 要求。