Jak poprawnie obsłużyć front oraz aplikację serwowaną na różnych portach?

0

Hej,

webapi działa na porcie 5412, front na porcie 8080

moja konfiguracja

builder.Services.AddCors(options =>
{
    options.AddPolicy("FrontEndClient", builder =>
        builder.WithOrigins("http://localhost:8080")
            .AllowAnyMethod()
            .AllowAnyHeader()
        );
});
var app = builder.Build();

app.UseCors("FrontEndClient");

app.UseMiddleware<ErrorHandlingMiddleware>();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();

app.Run();

wrzuciłem to na serwer produkcyjny (docker, trzy kontenery: api, webclient, baza danych ) i dostaję

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:5412/api/account/login. (Reason: CORS request did not succeed). Status code: (null).

co powinienem zrobić?
czy w WithOrigins powinienem dodać mój adres pod którym chodzi front np. WithOrigins("http://mojadomena.com") ?

0

Powinien być adres pod którym chodzi front (ten który widzą użytkownicy).

Dodatkowo, jeśli masz przed swoim procesem jakieś reverse proxy - to na nim powinieneś skonfigurować reguły CORS.

0

modyfikacja

builder.Services.AddCors(options =>
{
    options.AddPolicy("FrontEndClient", builder =>

        builder.WithOrigins("http://localhost:8080", "http://mojadomena.com:8080")
        // próbowałem też builder.AllowAnyOrigin()
            .AllowAnyMethod()
            .AllowAnyHeader()
        );
});

a w NGINX

location /api {
  proxy_pass http://api:5412/api;
  proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $http_connection; #"upgrade";
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Port $server_port;
            add_header 'Access-Control-Allow-Origin' '*'; 
}

bez zmian :(

0

tylko dla proby

        app.UseCors(x => x
                .AllowAnyHeader()
                .AllowAnyMethod()
                .SetIsOriginAllowed((host) => true)
                .AllowCredentials());

1 użytkowników online, w tym zalogowanych: 0, gości: 1