我是asp.net新手。当我想添加Cors时,有两个选项。Host
和Origin
.
它们之间的区别是什么?
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowOrigin", builder =>
{
builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(origin => true)
.AllowCredentials();
//or
builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed((host) => true)
.AllowCredentials();
});
});
这两个是相同的。SetIsOriginAllowed
期望一个接受字符串并返回布尔值的函数。这两个都是这样。你可以调用参数"x"它还是原来的函数
这里的方法是.SetIsOriginAllowed(Func<bool,string>)
。
这是一个接受lambda和返回bool值的字符串形参的方法。如果你不熟悉lambdas,它们可以被认为是非常简洁的内联函数。
在您的问题中,host
和origin
只是该字符串参数的不同名称,您可以将其称为TheSpanishInquisition
,它仍然可以相同地工作。如果您实际上没有使用该参数,我建议使用_
丢弃操作符,因此它将是:
builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(_ => true)
.AllowCredentials();
不同的括号也无关紧要。如果只有一个参数,lambda参数周围的括号是可选的,但如果有多个参数,则必须使用括号。
您可以为参数指定任何您想要的名称。它们没有区别