さまざまなサイトからAPIにアクセスできるようにする。これは持っていた:.Net core2 CORS - SetIsOriginAllowedの仕組みは?
services
.AddCors(options =>
{
options.AddPolicy(PolicyName, builder =>
{
builder
.SetIsOriginAllowedToAllowWildcardSubdomains()
.WithOrigins(
"http://*.my-api.com",
"http://*.my-api.service"
)
...
これはhttpSを許可していないようです、または私がリクエストでポートを指定しているようです。
例: https://www.my-api.com:3000
思想は)(SetIsOriginAllowedでWithOriginsを置き換えることができ
services
.AddCors(options =>
{
options.AddPolicy(PolicyName, builder =>
{
builder
.SetIsOriginAllowed(IsOriginAllowed)
IsOriginAllowed機能は次のように定義されて
:
private static bool IsOriginAllowed(string host)
{
var corsOriginAllowed = new[] { "my-api.com", "my-api.service" };
return corsOriginAllowed.Any(origin =>
Regex.IsMatch(host, [email protected]"^http(s)?://.*{origin}(:[0-9]+)?$", RegexOptions.IgnoreCase));
}
が、これはでは動作しません。すべて、正規表現さえも真実に戻っています。
誰もが、これは動作しませんし、私の(HTTPSを許可HTTPSと異なるポートで()WithOrigins内のすべてのドメインを複製する以外にも正しい方法を示すことができる理由を知っています。
おかげ