[英]ASP .Net Core, Cors Host vs Origin
我是 ASP .NET 的新手。當我想添加 Cors 時,有 2 個選項。 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
需要一個 function,它接受一個字符串並返回一個 boolean。這兩個 lambda 都這樣做。 您可以調用參數“x”,它仍然是相同的 function。
這里的方法是.SetIsOriginAllowed(Func<bool,string>)
。
這是一種采用 lambda 和返回布爾值的字符串參數的方法。 如果您不熟悉 lambda,可以將它們視為非常簡潔的內聯函數。
在您的問題中, host
和origin
只是該字符串參數的不同名稱,您可以將其TheSpanishInquisition
並且它仍然可以相同地工作。 如果您實際上沒有使用該參數,我建議您使用_
discard 運算符,因此它將是:
builder
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(_ => true)
.AllowCredentials();
不同的括號也無關緊要。 如果只有一個參數,則 lambda 參數周圍的括號是可選的,但如果有多個參數,則需要括號。
你可以給參數任何你想要的名字。它們沒有區別
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.