介绍
反向代理可以在代理到目标服务器之前处理跨域请求。 这可以减少目标服务器上的负载,并确保在应用程序中实现一致的策略。
违约
除非在路由器或应用程序配置中启用,否则这些请求不会针对 cors 预检请求自动进行匹配。
配置
可以通过 RouteConfig.CorsPolicy 为每个路由指定 CORS 策略,并且可以从配置文件的 Routes
部分绑定。 与其他路由属性一样,无需重启代理即可修改和重新加载此属性。 策略名称不区分大小写。
例:
{
"ReverseProxy": {
"Routes": {
"route1" : {
"ClusterId": "cluster1",
"CorsPolicy": "customPolicy",
"Match": {
"Hosts": [ "localhost" ]
}
}
},
"Clusters": {
"cluster1": {
"Destinations": {
"cluster1/destination1": {
"Address": "https://localhost:10001/"
}
}
}
}
}
}
CORS 策略 是代理利用的 ASP.NET 核心概念。 代理提供上述配置来指定每个路由的策略,其余配置由现有 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 请求。